Heim >Datenbank >MySQL-Tutorial >Wie teile ich eine einzelne Namensspalte in SQL in Vor- und Nachnamenspalten auf?
Frage:
Sie möchten eine einzelne Spalte mit einer Namensliste in mehrere Spalten mit Vor- und Nachnamen umwandeln.
Beispiel:
<code class="language-sql">姓名 ------------ abcd efgh ijk lmn opq asd j. asdjja asb (asdfas) asd asd</code>
Erwartete Ausgabe:
<code class="language-sql">名 姓 ---------------------------------- abcd efgh ijk lm opq asd asdjja asb asd asd NULL</code>
Lösung:
Die vorherige Methode verarbeitet möglicherweise nicht alle Namensformate korrekt. Hier ist eine verbesserte Lösung mit T-SQL:
<code class="language-sql">SELECT CASE WHEN name LIKE '% %' THEN SUBSTRING(name, 1, CHARINDEX(' ', name) - 1) ELSE name END AS first_name, CASE WHEN name LIKE '% %' THEN SUBSTRING(name, CHARINDEX(' ', name) + 1, LEN(name)) ELSE NULL END AS last_name FROM YourTable;</code>
Dieser SQL-Code prüft zunächst, ob Leerzeichen im Namen vorhanden sind. Falls vorhanden, verwendet es die Funktion SUBSTRING
, um den Teil vor dem Leerzeichen als Vornamen und den Teil nach dem Leerzeichen als Nachnamen zu extrahieren. Wenn der Name keine Leerzeichen enthält, wird der gesamte Name als Vorname verwendet und der Nachname ist NULL. Dies ist robuster als die vorherige Lösung und verarbeitet verschiedene Namensformate besser.
Das obige ist der detaillierte Inhalt vonWie teile ich eine einzelne Namensspalte in SQL in Vor- und Nachnamenspalten auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!