Heim >Datenbank >MySQL-Tutorial >Wie kann ich eine einzelne Spalte mit mehreren Werten in separate Spalten in SQL aufteilen?

Wie kann ich eine einzelne Spalte mit mehreren Werten in separate Spalten in SQL aufteilen?

Linda Hamilton
Linda HamiltonOriginal
2025-01-13 07:18:45293Durchsuche

How Can I Split a Single Column of Multiple Values into Separate Columns in SQL?

Umwandeln einer einzelnen Spalte mit mehreren Werten in separate Spalten in SQL

Bei der Arbeit mit SQL-Daten ist häufig eine Umstrukturierung der Spalten erforderlich. Eine häufige Aufgabe besteht darin, eine einzelne Spalte mit mehreren Werten in verschiedene Spalten aufzuteilen. Hier ist eine Methode, um dies zu erreichen:

Die folgende SQL-Abfrage verwendet CASE-Anweisungen und Zeichenfolgenfunktionen, um eine Spalte mit dem Namen „name“ zu analysieren, die Vor- und Nachnamen enthält:

<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 Ansatz prüft mithilfe von name, ob die Spalte LIKE '% %' ein Leerzeichen enthält. Wenn ein Leerzeichen vorhanden ist, extrahieren die Funktionen SUBSTRING und CHARINDEX den Text vor und nach dem Leerzeichen in first_name bzw. last_name. Wenn kein Leerzeichen gefunden wird, wird das gesamte name first_name zugewiesen und last_name auf NULL gesetzt.

Diese Lösung bietet einen praktischen Ansatz für viele gängige Szenarien, obwohl komplexere Situationen möglicherweise ausgefeiltere String-Manipulationstechniken erfordern.

Das obige ist der detaillierte Inhalt vonWie kann ich eine einzelne Spalte mit mehreren Werten in separate Spalten in SQL aufteilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn