2016-07-25 21 views
0

有人可以解釋我在第二個區塊中符號的含義嗎?我發現這個處理數據透視的舊帖子,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); 
+0

「爲什麼需要這樣做?」當處理數據透視表中動態數量的列時,必須使用動態SQL。 @Cols簡單來說就是用戶想要旋轉的列的列表。 – xQbert

回答

1

第二塊是使用動態查詢評估。 '符號只是字符串文字分隔符。

+0

好吧,那麼簡單。謝謝 – SQLStarter

+0

非常歡迎。 –