テーブル内で複雑な文字列値を扱う場合、特定の情報を抽出する必要が生じることがよくあります。これは、区切り文字を使用して文字列の構造を定義することで実現できます。
そのようなシナリオの 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 サイトの他の関連記事を参照してください。