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
DDDOriginal
2024-12-16 18:24:11563Durchsuche

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'

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

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!

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