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

SQL でカンマ区切りの列値から行を抽出するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-03 03:39:39
オリジナル
691 人が閲覧しました

How to Extract Rows from Comma-Separated Column Values in SQL?

カンマ区切りの列値からの行の抽出

問題:

カンマ区切りの列を含むテーブルが指定されたとします。値の場合、目的は各値を個別に変換することです。 rows.

クエリ:

SELECT A.[id],  
     Split.a.value('.', 'VARCHAR(100)') AS processedrows  
FROM  (SELECT [id],  
         CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML) AS String  
     FROM  Sample) AS A CROSS APPLY String.nodes ('/M') AS Split(a);
ログイン後にコピー

説明:

  1. 内部クエリは、という名前の新しい列を作成します。 XML タグ内の元のカンマ区切り値をラップする文字列。これは、CAST 関数と REPLACE 関数を使用して値を整形式の XML 文字列に変換することで実現されます。
  2. 外側のクエリはクロス適用を実行し、nodes 関数を使用して XML 文字列をノードに解析します。各ノードは、単一のカンマ区切り値を表します。
  3. a.value('.','VARCHAR(100)') 式は、a ノードの値を VARCHAR(100) データ型として抽出します。これにより、処理された個々の行が得られます。

リファレンス:

  • [SQL を使用した単一のカンマ区切りの行値から複数の行への変換] XML](http://www.sqljason.com/2010/05/converting-single-comma- Separated-row.html)

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

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