嗨,我有如下查询:
SELECT route_id [ROUTE_ID]
FROM route_master(NOLOCK)
WHERE route_ou = 2
AND route_query = @l_s_query
AND lang_id = 1
Run Code Online (Sandbox Code Playgroud)
这里,只有当@l_s_query为非空时,才应添加WHERE子句中的"AND route_query = @l_s_query"条件.我不想为@l_s_query写IF IFSE条件.有没有办法直接处理WHERE子句本身.谢谢.
我有以下样本数据表
-----------------------------
UserID | ScreenID | rights |
------------------------------
admin 22 0
admin 23 0
admin 24 0
userA 22 1
userA 23 1
userA 24 1
userB 22 0
userB 23 0
userB 24 1
Run Code Online (Sandbox Code Playgroud)
现在我想获取"UserID"和"权限"详细信息,如下所示:对于每个用户,如果所有ScreenID的"权限"相同,则该权限值("0"或"1"),否则权限值为2
这意味着,上表所需的输出应为:
admin , 0
userA , 1
userB ,2
Run Code Online (Sandbox Code Playgroud)
请帮我写一下SQL查询.谢谢.