SQL (SQL Server 2008) でピボット テーブルを生成しようとしています。列リストを取得するために、SQL で使用するとうまく機能する stuff 関数を使用しています。
ピボット構造の動的な性質(ユーザーによる選択)により、列名を変数として設定したいのですが。正しい SQL Stuff 構文をキャッチできますが、実行できません。何か案が?
以下のコード例を参照してください: 作業コード:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(Station)
from #ResultCrosstab
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
Select @cols
以下のように動作しないコード
Declare @ColumnName varchar(100)
set @ColumnName='Station'
DECLARE @cols1 AS NVARCHAR(MAX)
DECLARE @queryCol AS NVARCHAR(MAX)
set @queryCol='STUFF((SELECT distinct '','' + QUOTENAME(' + @ColumnName + ')
from #ResultCrosstab
FOR XML PATH(''), TYPE
).value(''.'', ''NVARCHAR(MAX)'')
,1,1,'''')'
Select @queryCol
Select @cols1=(@queryCol)
Not Working コードは、結果ではなく SQL クエリ自体を返します。
アイデアや提案はありますか?
乾杯ハーディープ