2014-07-09 61 views
0

我正在使用STUFF獲取列中的數據作爲列表並在PIVOT中使用它。現在,如何使用從STUFF得到的值在pivot中?如何使用IN命令與列中的數據

SELECT @listCol = STUFF((SELECT '], [' + [CategoryName] 
    FROM OnCall_Category 
    FOR 
    XML PATH('') 
), 1, 2, '') + ']' ; 

SELECT 
    EmployeeSID, 
    ManagerSID 
    FROM 
    t1 
    PIVOT (
     Min(RequestCount) 
     FOR Category IN @listCol //intended operation 
    ) AS t2 
+0

動態SQL可以解決您的問題 –

回答

1

@listCol是一個字符串,而您想要一個值列表。因此,使用動態SQL構建PIVOT查詢,然後執行它。

declare @query nvarchar(max0 
set @query = N'SELECT EmployeeSID,ManagerSID FROM t1' 
      + N'PIVOT (Min(RequestCount) FOR Category IN ' 
      + @listCol 
      + N') AS t2' 

exec sp_executesql @query 
相關問題