Heim >Datenbank >MySQL-Tutorial >Wie kann ich bestimmte Werte aus durch Trennzeichen getrennten Zeichenfolgen in T-SQL extrahieren?

Wie kann ich bestimmte Werte aus durch Trennzeichen getrennten Zeichenfolgen in T-SQL extrahieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-25 02:37:08776Durchsuche

How Can I Extract Specific Values from Delimited Strings in T-SQL?

Aufteilen von Zeichenfolgen mithilfe von Trennzeichen in T-SQL

In T-SQL kann das Extrahieren spezifischer Informationen aus langen Zeichenfolgen durch Aufteilen der Zeichenfolge erreicht werden Verwendung von Trennzeichen. Diese Technik erweist sich besonders beim Umgang mit komplexen, strukturierten Daten als nützlich.

Beispielszenario

Stellen Sie sich eine Tabelle mit einer Spalte vor, die eine Zeichenfolge mit mehreren durch getrennten Schlüssel-Wert-Paaren enthält Pipe (|) und Gleichheitszeichen (=). Das Ziel besteht darin, nur den spezifischen Wert abzurufen, der mit „Kundenname“ verknüpft ist.

Lösung mit SUBSTRING- und STUFF-Funktionen

Um den gewünschten Wert zu extrahieren, können wir a verwenden Kombination der SUBSTRING- und STUFF-Funktionen:

Select col1, col2, LTRIM(RTRIM(SUBSTRING(
    STUFF(col3, CHARINDEX('|', col3,
    PATINDEX('%|Client Name =%', col3) + 14), 1000, ''),
    PATINDEX('%|Client Name =%', col3) + 14, 1000))) col3
from Table01

Aufschlüsselung der Lösung

Die Abfrage umfasst die folgenden Schritte:

  1. STUFF-Funktion: Fügt an der angegebenen Stelle ein Leerzeichen hinzu, um ein eindeutiges Trennzeichen für zu erstellen Schlüssel-Wert-Paar mit „Kundenname“.
  2. CHARINDEX-Funktion: Findet die Position von das Pipe-Zeichen, das vor „Client Name“ steht.
  3. PATINDEX-Funktion: Identifiziert die Position des Schlüsselwerttrennzeichens „Client Name“.
  4. SUBSTRING-Funktion : Extrahiert die Teilzeichenfolge, die den Wert „Clientname“ enthält.
  5. LTRIM und RTRIM-Funktionen:Entfernen Sie alle führenden oder nachgestellten Leerzeichen aus dem extrahierten Wert.

Überlegungen zur Leistung

Während sowohl CharIndex als auch PatIndex als Trennzeichen verwendet werden können Leistungstests deuten darauf hin, dass sie ähnliche Ergebnisse liefern. Daher ist die Wahl zwischen ihnen oft vorzuziehen.

Das obige ist der detaillierte Inhalt vonWie kann ich bestimmte Werte aus durch Trennzeichen getrennten Zeichenfolgen in T-SQL extrahieren?. 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