SQL Pivot 允许我查看哪些用户可以访问某些屏幕
Posted
技术标签:
【中文标题】SQL Pivot 允许我查看哪些用户可以访问某些屏幕【英文标题】:SQL Pivot that allows me to see which users have access to certain screens 【发布时间】:2018-02-26 20:19:01 【问题描述】:我有以下表格(在 SQL Server 中):
屏幕访问
+----+------+--------------+
| id | user | screen |
+----+------+--------------+
| 1 | John | Screen 1 |
| 2 | Bob | Screen 1 |
| 2 | Bob | Screen 3 |
| 2 | Bob | Screen 4 |
+----+------+--------------+
如何创建一个透视表/一个列表,显示 john 可以访问哪些屏幕,而 bob 不能访问?
任何帮助将不胜感激。
编辑:只有两个用户正确,但屏幕很多,我只是以有限的屏幕为例。
期望的输出
Users |John|Bob
Screen1 |x |x
Screen3 | |x
Screen4 | |x
谢谢。
【问题讨论】:
你只有两个用户? John 无权访问 Bob 没有的任何屏幕。是什么让你认为你需要一个支点?你想要的输出是什么样的? 用所需的输出更新了我的问题 这是今天的第三个 PIVOT 问题。研究怎么了?顺便说一句 - 不是我的反对意见,但请研究一下。 【参考方案1】:Pivot 似乎有点矫枉过正,但有可能:
SELECT *
FROM ScreenAccess
PIVOT (Count(ID)
FOR [User] IN (Bob,
John)) piv
【讨论】:
以上是关于SQL Pivot 允许我查看哪些用户可以访问某些屏幕的主要内容,如果未能解决你的问题,请参考以下文章
Spring security如何允许匿名访问大多数限制某些操作的站点