ホームページ > データベース > mysql チュートリアル > Transact-SQL で区切り文字で区切られた文字列から特定の値を抽出する方法

Transact-SQL で区切り文字で区切られた文字列から特定の値を抽出する方法

DDD
リリース: 2024-12-16 18:24:11
オリジナル
556 人が閲覧しました

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

Transact-SQL での区切り文字による文字列の分割

テーブル内で複雑な文字列値を扱う場合、特定の情報を抽出する必要が生じることがよくあります。これは、区切り文字を使用して文字列の構造を定義することで実現できます。

そのようなシナリオの 1 つは、次のような文字列を含む列を持つテーブルで例示されています。

Col3 = 'Clent ID = 4356hy|Client Name = B B BOB|Client Phone = 667-444-2626|Client Fax = 666-666-0151|Info = INF8888877 -MAC333330554/444400800'
ログイン後にコピー

ここでは、キーと値のペアを区切る特定の区切り文字: '|'列を区切るには '= ' (スペースを含む) を使用してキーと値を区切ります。目的は、「クライアント名」の値 (この場合は「B B BOB」) を抽出することです。

これを達成するには、文字列操作関数と条件ステートメントの組み合わせを使用できます。 1 つの方法では、CHARINDEX 関数または PATINDEX 関数を使用して、文字列内の目的の値の位置を特定します。

SELECT col1, col2, LTRIM(RTRIM(SUBSTRING(
    STUFF(col3, CHARINDEX('|', col3,
    PATINDEX('%|Client Name =%', col3) + 14), 1000, ''),
    PATINDEX('%|Client Name =%', col3) + 14, 1000)))
FROM Table01
ログイン後にコピー

このクエリでは、PATINDEX を使用して 'Client Name =' の開始位置を見つけ、その後に続きます。この部分をスキップするには、14 を追加します。次に、CHARINDEX を使用して次の '|' の位置を見つけます。最後に、SUBSTRING 関数はこれらの位置の間の目的の値を抽出し、LTRIM と RTRIM を使用して先頭または末尾のスペースをトリミングします。

このタスクに使用される特定の関数は複雑さに応じて異なる場合があることに注意してください。文字列と望ましい結果の値。

以上がTransact-SQL で区切り文字で区切られた文字列から特定の値を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート