ホームページ >データベース >mysql チュートリアル >T-SQL の区切り文字列から特定のデータを抽出するにはどうすればよいですか?
T-SQL の区切り文字列から特定のデータを分離する方法
SQL の世界では、文字列の操作が課題になることがあります。特に、複数のデータポイントを含む長い文字列から特定の情報を抽出しようとする場合に役立ちます。区切り文字で区切られた複数のキーと値のペアを含む文字列を保持する列を持つテーブルがあるシナリオを検討してみましょう。
問題の定義
与えられたテーブル次の構造を使用します:
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'
目標は、「クライアント名」の値のみを抽出することです。この場合は、 「Col3」列の「B B BOB」。キーと値のペアを区切る区切り文字は「|」です。パイプ文字とキーと値のペア自体は、先頭と末尾の空白を含む等号 (' = ') で区切られます。
解決策
これに対処するにはT-SQL の問題を解決するには、次の文字列操作手法を使用できます:
コード スニペット
特定のデータについては、次のコード スニペットを使用して実現できます。望ましい結果:
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
注: キーの開始位置を特定するために CHARINDEX と PATINDEX を使用する場合、パフォーマンスにわずかな違いが発生する可能性があります。ただし、どちらのアプローチも効率が同等であるため、一般に同様の結果が得られます。
以上がT-SQL の区切り文字列から特定のデータを抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。