Frage:
In SQL kann die Verwendung von SUBSTRING zum Teilen einer Zeichenfolge basierend auf einem Trennzeichen einen Fehler verursachen, wenn das Trennzeichen nicht vorhanden ist. Der folgende Code demonstriert dies:
<code class="language-sql">SELECT SUBSTRING(myColumn, 1, CHARINDEX('/', myColumn)-1) AS FirstName, SUBSTRING(myColumn, CHARINDEX('/', myColumn) + 1, 1000) AS LastName FROM MyTable</code>
Wenn eine Zeile ohne Trennzeichen gefunden wird, wird der Fehler ausgegeben: „Das an die LEFT- oder SUBSTRING-Funktion übergebene Längenargument ist ungültig.“
Lösung:
Um dieses Problem zu lösen, können Sie die CASE-Anweisung in der SUBSTRING-Funktion wie folgt verwenden:
<code class="language-sql">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>
Das obige ist der detaillierte Inhalt vonWie kann ich Zeichenfolgen in T-SQL mithilfe von Trennzeichen sicher aufteilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!