SQLServerでカンマ区切り (CSV) で文字列取得

公開日: : 最終更新日:2014/05/19 SQL Server , , , ,

SQLの取得結果をカンマ区切りで取得

Where句のINにSQLで取得した結果を直接利用したり
するのに、SQLServerで複数件存在するデータを
1行のカンマ区切りのデータとして取得して見ます。
(残念ですがOracleやMySQLなどではこの方法は通用しません。)

取得

カンマ区切りで取得するには列名を「data()」にすることで
アトミック値として処理し、その結果を「FOR XML PATH」を
利用して細工します。

取得結果

RESULT
太郎さん,次郎さん,三郎さん

取得した結果でカンマ区切り (CSV)ファイルを作成するには
便利です。

補足

カラムに付けている別名「data()」ですが、
パスを data() として指定した列の名前を参照すると


列名として指定したパスが “data()” の場合、生成される
XMLでは列の値がアトミック値として処理されます。

とあり、「data()」を他の名称「aaa()」のように変えると

RESULT
太郎さん
次郎さん
三郎さん

のように普通に取得してしまいます。

またアトミック操作とは不可分操作を参照すると


不可分操作(ふかぶんそうさ)あるいはアトミック操作 (Atomic Operation)
とは、情報工学においていくつかの操作を組み合わせたもので、
システムの他の部分から見てそれらがひとつの操作に見えるものをいう。

と言うことで、SELECT結果が複数件あっても1つの操作の結果に見えると。
う~ん、難しい。

スポンサーリンク
スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • 13 follow us in feedly

関連記事

SQLServer

bcpコマンドを使ってBULK INSERT用のフォーマットファイルを出力する

bcpコマンドを使ってBULK INSERT用のフォーマットファイルを出力する bcpコマンドを使

記事を読む

SQLで日付範囲の重複をチェックする

SQLで日付範囲の重複をチェックする SQLで日付範囲の重複をチェックする必要が出たので調査しまし

記事を読む

SQLServerのバージョン番号を取得する方法

SQLServerのバージョン番号を取得する SQLServerのバージョン番号は「@@VERSI

記事を読む

SQLを使っていろいろなやり方で年月を抜き出す

いろいろなやり方で年月を抜き出す 数値で年月を管理しているテーブルに対して年月日から 年月を抜き

記事を読む

SQLServer

SQLServerでストアドプロシージャ名を取得する

SQLServerでストアドプロシージャ名を取得する ストアドプロシージャ名を取得する エラ

記事を読む

SQLServerでホスト名を取得する

SQLServerが動作しているホスト(サーバ)名取得 SQLServerでSQLServerが動

記事を読む

SQLServer

SQLServerでトリガーを扱ってみる

INSERT、UPADTE、DELETEトリガーを扱ってみる SQLServerにはテーブルに対し

記事を読む

春分の日と秋分の日をSQLで求める計算式

春分の日と秋分の日は毎年違う 春分の日と秋分の日は 祝日としての春分の日・秋分の日は、 前

記事を読む

SQLServer上にあるテーブルの更新日時を取得する。

テーブルの更新日時を取得 SQLServer上にあるストアドプロシージャーの更新日時を取得するで

記事を読む

複数のストアドプロシージャ (stored procedure) でローカルテンポラリテーブルを共有する

ローカルテンポラリテーブルを共有する 先日来より悩んでいたSQLServerでの SQL

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

SELECTでUNIONは複数個使える

SELECTでの複数のUNIONの使い方 SELECTでUNIONは

SQLServerのバージョン番号を取得する方法

SQLServerのバージョン番号を取得する SQLServerのバ

SQL Server のファイルサイズを圧縮する

データベースファイルのサイズを圧縮する データベースファイル(.md

TOP句で変数を使ってSQLを1行にする

TOP句で変数を使ってSQLを1行にする TOP句を使って複雑なSQ

再帰SQLで歯抜けの日付データを取得する

再帰SQLを使って歯抜けの日付データを取得 処理が自動実行(バッチ処

→もっと見る



PAGE TOP ↑