シミュレーション
あなたの会社のすべての顧客のデータを含むデータウェアハウスがあります。
クエリを作成して、CUSTOMERSという名前のテーブルからSELECTステートメントを動的に生成する必要があります。 SELECT文は、列の完全なリストを生成する必要があります。
正しいTransact-SQLの一部は、以下のアンサーエリアで提供されています。回答エリアに問題を解決し、記載された目標または要件を満たすコードを入力します。提供されているコード内に、その下にコードを追加することができます。


[構文の確認]ボタンを使用して作業内容を確認します。構文やスペルの誤りは、行と文字の位置によって報告されます。
正解:
XML PATH
説明/参照:
Explanation:
7行目にXML PATHを追加し、次の行を取得します。
FOR XML PATH( ''))、1、1、 '')+
これはどのように動作するのです:
1. FOR XMLでXML要素文字列を取得する
FOR XML PATHをクエリの最後に追加すると、クエリの結果をXML要素として出力できます。要素名はPATH引数に含まれています。たとえば、次の文を実行するとします。
SELECT '、' +名前
FROM temp1
FOR XML PATH( '')
空の文字列(FOR XML PATH( ''))を渡すと、代わりに次のようになります。
、aaa、bbb、ccc、ddd、eee
2.大手のcommawith STUFFを削除する
STUFFステートメントは、ある文字列を別の文字列に文字通り「置き換え」、最初の文字列内の文字を置き換えます。
しかし、結果のリストの最初の文字を削除するために使用しています。
SELECT abc = STUFF((
SELECT '、' + NAME
FROM temp1
FOR XML PATH( '')
)、1,1 '')
FROM temp1
注:完全なコードは次のとおりです。
SELECT 'SELECT' +
スタフ((
SELECT '、[' + name + ']'
から
WHERE id = OBJECT_ID( '顧客')AND
...名前<> '私'
FOR XML PATH( ''))、1、1、 '')+
'FROM [お客様]から'
参考文献:http://stackoverflow.com/questions/31211506/how-stuff-and-for-xml-path-work-in-sql-server