我的查询如下,我需要的是当我在参数中传递-1时无条件应该在其他值传递时调用else它应该调用条件
我尝试了以下查询,但它无效
SELECT RequestID
, AgencyName
, Contact
, DeliveryAddress
, ContactPhone
, ContactEmailAddress
, RequestDate
, CASE WHEN RequestStatus=0 THEN 'Pending'
ELSE CASE WHEN RequestStatus=1 THEN 'Approved'
ELSE 'Denied'
END
END AS 'RequestStatus'
FROM tblRequest
WHERE CASE WHEN @RequestStatus=-1 THEN '0'='0'
ELSE RequestStatus= @RequestStatus
END
答案 0 :(得分:1)
case
可用于在值之间进行选择,而不是语法元素。您可以使用直接or
运算符模拟所需的行为:
WHERE @RequestStatus = -1 OR RequestStatus = @RequestStatus
或者只使用in
运算符作为快捷方式:
WHERE @RequestStatus IN (-1, RequestStatus)
答案 1 :(得分:1)
也许你的意思是:
问题是你无法使用case一次只控制where子句中的整个表达式;否则你有动态SQL,并且必须以另一种方式管理。
UIAlertController