ホームページ >データベース >mysql チュートリアル >T-SQL の区切り文字列から特定の値を抽出するにはどうすればよいですか?

T-SQL の区切り文字列から特定の値を抽出するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-25 02:37:08776ブラウズ

How Can I Extract Specific Values from Delimited Strings in T-SQL?

T-SQL で区切り文字を使用した文字列の分割

T-SQL では、文字列を分割することで長い文字列から特定の情報を抽出できます。区切り文字を使用します。この手法は、複雑な構造化データを扱う場合に特に役立ちます。

シナリオ例

で区切られた複数のキーと値のペアを持つ文字列を含む列を持つテーブルを考えてみましょう。パイプ (|) および等号 (=) 文字。目標は、「クライアント名」に関連付けられた特定の値のみを取得することです。

SUBSTRING 関数と STUFF 関数を使用した解決策

必要な値を抽出するには、 SUBSTRING 関数と STUFF 関数の組み合わせ:

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

内訳ソリューションの

クエリでは次の手順が使用されます。

  1. STUFF 関数: 指定された位置にスペース文字を追加して、一意の区切り文字を作成します。 「クライアント名」を含むキーと値のペアの場合。
  2. CHARINDEX関数: 「クライアント名」の前にあるパイプ文字の位置を検索します。
  3. PATINDEX 関数: 「クライアント名」のキーと値の区切り文字の位置を識別します。
  4. SUBSTRING 関数: 「クライアント」を含む部分文字列を抽出します。
  5. LTRIM および RTRIM 関数: 抽出された値から先頭または末尾の空白を削除します。

パフォーマンスに関する考慮事項

CharIndex と PatIndex の両方を次の目的で使用できます。区切り文字の識別、パフォーマンス テストでは、同様の結果が得られることが示されています。したがって、多くの場合、どちらを選択するかが優先されます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。