![](/img/trans.png)
[英]SQL Server stored procedures dynamic SQL with multiple different where clause
[英]SQL Server stored procedures, returning multiple value in Else statement inside CASE clause
我想在where子句中使用CASE和IN子句
但是下面的查詢拋出語法錯誤。
查詢:
SELECT *
FROM User
where isInternalUser = 0 and DeleteMark <> 1 and
User.Status IN
(
CASE @UserStatus // case for UserStatus
WHEN 0 THEN 0
WHEN 1 THEN 1
WHEN 2 THEN 2
ELSE (0,1,2)
END
)
誰能幫我一個忙..
謝謝,Aneesh
嘗試不使用CASE
語句,但檢查@UserStatus IS NULL
是否@UserStatus IS NULL
:
SELECT *
FROM User
WHERE isInternalUser = 0 AND DeleteMark <> 1 AND (
(@UserStatus IS NOT NULL AND Status = @UserStatus)
OR (@UserStatus IS NULL AND Status IN (0, 1, 2))
)
User.Status IN
(
SELECT s FROM (
SELECT 1 s union SELECT 2 s union SELECT 3 s
) a
WHERE @UserStatus is null or @UserStatus = s
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.