假设我有表Users, Roles
和UserRoles
(关联)。然后,我想创建一个带有参数userid
的存储过程,以返回该特定用户的所有角色。但是,如果UserId
为1(特殊ID),则应返回所有角色。
我对SP的查询应该是这样的,没有特殊条件:
SELECT r.*
FROM Roles
INNER JOIN UserRoles ur ON r.Id = ur.RoleId
WHERE ur.UserId = @userId;
如何更改此查询以满足我的需求?或者单独一个查询是否可以这样做?我不想使用IF..ELSE并使用2个查询。
欢迎任何评论。
答案 0 :(得分:3)
嗨,这将在@userId = 1
时返回所有用户角色SELECT r.*
FROM Roles
INNER JOIN UserRoles ur
ON r.Id = ur.RoleId
WHERE ur.UserId = @userId
OR @userId = 1