2012-05-23 50 views
2

我試圖爲我的應用程序生成一個安全矩陣作爲報告。是否可以根據SQL select語句中的查詢生成列?

看着這個問題,它幾乎正是我想要的。

SQL Server: Examples of PIVOTing String data

我已經改變了解決方案

SELECT Action, 
    MAX(CASE data WHEN 'View' THEN data ELSE '' END) ViewCol, 
    MAX(CASE data WHEN 'Edit' THEN data ELSE '' END) EditCol 
FROM t 
GROUP BY Action 

,以適應我的解決方案。

SELECT RefRoleId , 
     MAX(CASE Permission WHEN 'AdministerErrors' THEN 'X' ELSE '' END) 'Administer Errors' 
FROM RolePermission 
GROUP BY RefRoleId 

雖然我可以看到的問題是我需要確切知道我擁有哪些權限並將它們硬編碼爲查詢中的列。我需要一個新的

MAX(CASE權限如果 'AdministerErrors' 然後 'X' ELSE '' END) '轄錯誤'

爲每一個許可。

有沒有辦法讓我通過查詢添加要顯示的SQL列到SQL查詢?

+0

可能重複的[SQL Server動態PIVOT查詢?](http://stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query) –

回答