„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich Strings in T-SQL mit Grenzwerten sicher geteilt?

Wie kann ich Strings in T-SQL mit Grenzwerten sicher geteilt?

Gepostet am 2025-03-24
Durchsuche:990

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

Segment-Zeichenfolge basierend auf dem Delimiter in t-sql

Frage:

In SQL kann die Verwendung von Substring, um Strings basierend auf Grenzwerten zu teilen, Fehler verursachen, wenn der Trennzeichen nicht existiert. Der folgende Code zeigt dies:

SELECT SUBSTRING(myColumn, 1, CHARINDEX('/', myColumn)-1) AS FirstName,
       SUBSTRING(myColumn, CHARINDEX('/', myColumn)   1, 1000) AS LastName
FROM   MyTable

Wenn eine Zeile ohne Trennzeichen auftritt, wirft sie einen Fehler aus: "Der Länge Parameter für die linke oder Substring ist ungültig."

Lösung:

Um dieses Problem zu lösen, können Sie die Fallanweisung in der Substring -Funktion verwenden, wie unten gezeigt:

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
Dieser aktualisierte Code verwendet Charindex, um die Position des Trennzeichens zu bewerten. Wenn der Trennzeichen nicht gefunden wird (Charindex gibt 0 zurück), verwendet die Fallanweisung die Länge der Zeichenfolge, um sicherzustellen, dass die gesamte Zeichenfolge als Name behandelt wird. Wenn ein Trennzeichen existiert, berechnet er die Position des ersten Zeichens nach dem Trennzeichen als Startindex des Nachnamens.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3