Heim > Datenbank > MySQL-Tutorial > Wie teilt man Strings in T-SQL mithilfe von Trennzeichen robust auf?

Wie teilt man Strings in T-SQL mithilfe von Trennzeichen robust auf?

Barbara Streisand
Freigeben: 2025-01-08 09:37:45
Original
653 Leute haben es durchsucht

How to Robustly Split Strings in T-SQL Using Delimiters?

T-SQL-String-Splitting: Gehen Sie geschickt mit fehlenden Trennzeichen um

Das Aufteilen von Zeichenfolgen anhand von Trennzeichen kann in T-SQL schwierig sein, insbesondere wenn in einigen Zeilen Trennzeichen fehlen. Dieser Artikel bietet eine verbesserte Methode zur Lösung dieses Problems.

Angenommen, die Daten lauten wie folgt:

<code>John/Smith
Jane/Doe
Steve
Bob/Johnson</code>
Nach dem Login kopieren

Originalcode:

Der folgende Code versucht, die Daten aufzuteilen, schlägt jedoch fehl, wenn das Trennzeichen fehlt:

<code>SELECT SUBSTRING(myColumn, 1, CHARINDEX('/', myColumn)-1) AS FirstName,
       SUBSTRING(myColumn, CHARINDEX('/', myColumn) + 1, 1000) AS LastName
FROM MyTable</code>
Nach dem Login kopieren

Verbesserter Code:

Um den Fall fehlender Trennzeichen zu behandeln, können wir den folgenden CASE-Ausdruck verwenden:

<code>SELECT SUBSTRING(myColumn, 1, CASE CHARINDEX('/', myColumn)
            WHEN 0
                THEN LEN(myColumn)
            ELSE CHARINDEX('/', myColumn) - 1
            END) AS FirstName
    ,SUBSTRING(myColumn, CASE CHARINDEX('/', myColumn)
            WHEN 0
                THEN LEN(myColumn) + 1
            ELSE CHARINDEX('/', myColumn) + 1
            END, 1000) AS LastName
FROM MyTable</code>
Nach dem Login kopieren

Beschreibung:

  • Der CASE-Ausdruck prüft, ob das Trennzeichen (/) vorhanden ist.
  • Falls vorhanden, berechnet der Ausdruck die Länge von FirstName und LastName basierend auf der Position des Trennzeichens.
  • Wenn nicht vorhanden, verwendet der Ausdruck die gesamte Länge der Zeichenfolge als „Vorname“ und setzt „Nachname“ auf NULL.

Dieser Code liefert das erwartete Ergebnis:

<code>FirstName---LastName
John--------Smith
Jane--------Doe
Steve-------NULL
Bob---------Johnson</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie teilt man Strings in T-SQL mithilfe von Trennzeichen robust auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage