【发布时间】:2012-05-23 03:25:33
【问题描述】:
我正在尝试生成一个安全矩阵作为我的应用程序的报告。
看这个问题,几乎就是我想要的。
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 权限 WHEN 'AdministerErrors' THEN 'X' ELSE '' END ) 'Administer Errors'
每个权限。
有没有办法让我通过查询将我想要显示的列添加到 SQL 查询中?
【问题讨论】:
标签: sql sql-server-2008 select