[英]SQL CASE WHEN in WHERE clause
搜索了此问题,但找不到确切的问题。 我有一个存储过程,可以从大量表中获取数据。 在我的SP中,我有一个指示ID的参数。 该ID的默认值为零。 我想在查询中返回与此参数有关的所有值,除非提供了一个值。
SELECT mT.*
FROM myTable mT
(various JOINS)
WHERE
CASE @myParameter
WHEN 0 THEN 1 = 1
ELSE mT.ID = @myParameter
END
不幸的是,我收到错误消息“'='附近的语法不正确”。 已解决的问题:必须是SP,只有一个参数,如果未填充默认值,可以在其中设置默认值。 如果未填充,则where子句的这一部分将不适用(WHERE子句中还有更多语句。
如果我没有看到包含此问题的问题,请提示我在哪里可以找到它。
最好的问候,并在此先感谢!
您不需要CASE
:
SELECT mT.*
FROM myTable mT
(various JOINS)
WHERE
@myParameter= 0 OR mT.ID = @myParameter
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.