カンマ区切り値を行構造データに変換する
SQL Server で、データが列内にカンマ区切り形式で格納される場合、個々の値を抽出して操作するのは難しい場合があります。この記事では、選択クエリを使用してこのようなデータを行構造形式に変換する方法を説明します。
カンマを含む String という列を持つ Sample という名前のテーブルについて考えてみましょう。
Id | String |
---|---|
1 | abc,def,ghi |
2 | jkl,mno,pqr |
などの分離された値。個々の値を抽出して行として表示するには、次の手順:
String 列を XML タグ内でラップします:
CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML)
これにより、各値が 1 つのフィールド内にカプセル化された XML フラグメントが作成されます。
CROSS APPLY 演算子を使用して階層クエリを実行します。
CROSS APPLY String.nodes ('/M') AS Split(a)
これにより、XML フラグメントにノード メソッドが相互適用され、新しい結果が得られます。各
Id 列と Split(a).value('text()') タグを結合します。 > 式:
SELECT A.[id], Split.a.value('.','VARCHAR(100)') AS String FROM (SELECT [id], CAST('...AS XML) AS String FROM Sample) AS A
これは、抽出された値と ID を照合し、それらを個別に返しますrows.
結果は目的の出力のようになります。
Id | ProcessedRows |
---|---|
1 | abc |
1 | def |
1 | ghi |
2 | jkl |
2 | mno |
2 | pqr |
この手法により、カンマ区切り値を行として抽出して表示できるため、効率的な分析が可能になります。データの操作
以上がSQL Server でカンマ区切り値を行に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。