Heim > Datenbank > MySQL-Tutorial > Wie extrahiere ich bestimmte Werte aus durch Trennzeichen getrennten Zeichenfolgen in Transact-SQL?

Wie extrahiere ich bestimmte Werte aus durch Trennzeichen getrennten Zeichenfolgen in Transact-SQL?

DDD
Freigeben: 2024-12-16 18:24:11
Original
555 Leute haben es durchsucht

How to Extract Specific Values from Delimited Strings in Transact-SQL?

Aufteilen von Zeichenfolgen mit Trennzeichen in Transact-SQL

Beim Umgang mit komplexen Zeichenfolgenwerten in einer Tabelle besteht häufig die Notwendigkeit, bestimmte Informationen zu extrahieren. Dies kann erreicht werden, indem Trennzeichen verwendet werden, um die Struktur der Zeichenfolge zu definieren.

Ein solches Szenario wird durch eine Tabelle mit einer Spalte veranschaulicht, die eine Zeichenfolge wie folgt enthält:

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

Hier haben wir Spezifische Trennzeichen, die die Schlüssel-Wert-Paare trennen: '|' um Spalten abzugrenzen und '= ' (einschließlich Leerzeichen) um Schlüssel und Werte zu trennen. Das Ziel besteht darin, den Wert „Client Name“ zu extrahieren, in diesem Fall „B B BOB“.

Um dies zu erreichen, kann eine Kombination aus String-Manipulationsfunktionen und bedingten Anweisungen verwendet werden. Ein Ansatz besteht darin, die Funktionen CHARINDEX oder PATINDEX zu verwenden, um die Position des gewünschten Werts in der Zeichenfolge zu finden.

SELECT col1, col2, LTRIM(RTRIM(SUBSTRING(
    STUFF(col3, CHARINDEX('|', col3,
    PATINDEX('%|Client Name =%', col3) + 14), 1000, ''),
    PATINDEX('%|Client Name =%', col3) + 14, 1000)))
FROM Table01
Nach dem Login kopieren

In dieser Abfrage wird PATINDEX verwendet, um die Startposition von „Client Name =“ zu finden, gefolgt von indem Sie 14 hinzufügen, um diesen Teil zu überspringen. Anschließend wird CHARINDEX verwendet, um die Position des nächsten „|“ zu ermitteln. Schließlich extrahiert die SUBSTRING-Funktion den gewünschten Wert zwischen diesen Positionen, und LTRIM und RTRIM werden verwendet, um alle führenden oder nachgestellten Leerzeichen zu kürzen.

Es ist zu beachten, dass die spezifischen Funktionen, die für diese Aufgabe verwendet werden, je nach Komplexität variieren können der Zeichenfolge und das gewünschte Ergebnis.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich bestimmte Werte aus durch Trennzeichen getrennten Zeichenfolgen in Transact-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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage