有人可以解釋我在第二個區塊中符號的含義嗎?我發現這個處理數據透視的舊帖子,set @query被放入這些符號中,而第一個不是(select @cols)。那是什麼意思?爲什麼需要這樣做?'在SQL透視中的含義
Convert Rows to columns using 'Pivot' in SQL Server
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT ',' + QUOTENAME(Week)
from yt
group by Week
order by Week
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT store,' + @cols + ' from
(
select store, week, xCount
from yt
) x
pivot
(
sum(xCount)
for week in (' + @cols + ')
) p '
execute(@query);
「爲什麼需要這樣做?」當處理數據透視表中動態數量的列時,必須使用動態SQL。 @Cols簡單來說就是用戶想要旋轉的列的列表。 – xQbert