小编use*_*872的帖子

仅当变量不为null时,SQL才会添加过滤器

嗨,我有如下查询:

    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子句本身.谢谢.

sql sql-server

12
推荐指数
1
解决办法
6716
查看次数

用于根据多个行值获取输出的SQL查询

我有以下样本数据表

-----------------------------
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查询.谢谢.

sql sql-server

1
推荐指数
1
解决办法
51
查看次数

标签 统计

sql ×2

sql-server ×2