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>
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>
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>
Beschreibung:
Dieser Code liefert das erwartete Ergebnis:
<code>FirstName---LastName John--------Smith Jane--------Doe Steve-------NULL Bob---------Johnson</code>
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!