Heim >Datenbank >MySQL-Tutorial >Wie extrahiere ich bestimmte Daten aus einer durch Trennzeichen getrennten Zeichenfolge 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'
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:
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
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!