Heim > Datenbank > MySQL-Tutorial > Wie extrahiere ich bestimmte Daten aus einer durch Trennzeichen getrennten Zeichenfolge in T-SQL?

Wie extrahiere ich bestimmte Daten aus einer durch Trennzeichen getrennten Zeichenfolge in T-SQL?

Linda Hamilton
Freigeben: 2024-12-21 06:50:13
Original
782 Leute haben es durchsucht

How to Extract Specific Data from a Delimited String in T-SQL?

So isolieren Sie bestimmte Daten aus einer durch Trennzeichen getrennten Zeichenfolge in T-SQL

In der Welt von SQL kann die Arbeit mit Zeichenfolgen manchmal eine Herausforderung darstellen , insbesondere wenn versucht wird, bestimmte Informationen aus einer längeren Zeichenfolge zu extrahieren, die mehrere Datenpunkte enthält. Lassen Sie uns ein Szenario untersuchen, in dem Sie eine Tabelle mit einer Spalte haben, die eine Zeichenfolge enthält, die mehrere durch ein Trennzeichen getrennte Schlüssel-Wert-Paare enthält.

Problemdefinition

Gegeben ist eine Tabelle mit der folgenden Struktur:

Col1 = '123'
Col2 = 'AAAAA'
Col3 = 'Clent ID = 4356hy|Client Name = B B BOB|Client Phone = 667-444-2626|Client Fax = 666-666-0151|Info = INF8888877 -MAC333330554/444400800'
Nach dem Login kopieren

Ihr Ziel ist es, nur den Wert „Kundenname“ zu extrahieren, der in diesem Fall „B B“ ist BOB“ aus der Spalte „Col3“. Die Trennzeichen, die die Schlüssel-Wert-Paare trennen, sind „|“. Pipe-Zeichen und die Schlüssel-Wert-Paare selbst werden durch das Gleichheitszeichen (' = ') mit führenden und nachgestellten Leerzeichen getrennt.

Lösung

Um dieses Problem zu beheben Problem in T-SQL können Sie die folgenden String-Manipulationstechniken anwenden:

  1. CHARINDEX und SUBSTRING: Verwenden Sie die CHARINDEX-Funktion, um die Startposition des Schlüssels „Client Name“ zu finden und den entsprechenden Wert aus der Originalzeichenfolge zu substringen.
  2. STUFF: Verwenden Sie die STUFF-Funktion, um Fügen Sie am Anfang des Teilstrings ein Trennzeichen ein, um ihn vom Rest des Strings zu trennen.
  3. LTRIM und RTRIM:Verwenden Sie die Funktionen LTRIM und RTRIM, um alle führenden oder nachgestellten Leerzeichen aus dem extrahierten Wert zu entfernen.

Code-Snippet

Für Ihre spezifischen Daten , können Sie das folgende Code-Snippet verwenden, um das gewünschte zu erreichen Ergebnis:

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
Nach dem Login kopieren

Hinweis: Es kann zu geringfügigen Leistungsunterschieden kommen, wenn Sie CHARINDEX gegenüber PATINDEX verwenden, um die Startposition des Schlüssels zu ermitteln. Allerdings liefern beide Ansätze im Allgemeinen ähnliche Ergebnisse, da ihre Effizienz vergleichbar ist.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich bestimmte Daten aus einer durch Trennzeichen getrennten Zeichenfolge in T-SQL?. 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