我正在尝试为我的应用程序生成一个安全矩阵作为报告。
看着这个问题,这几乎正是我想要的。
我改变了解决方案
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 查询中?