【发布时间】:2023-03-25 03:48:01
【问题描述】:
如果 Make 不等于“0”,我只想使用 where 条件。这是我尝试过的。这是来自存储过程的 sn-p。查询仅在 Make 不为 0 时有效。为 '0' 时查询失败。
这不是空检查。 @Make 是一个 varchar。它是如何实现的,要么是'0',要么是一个字符串,例如'mazda'。
select *
from In_Inventory
where
and Make = case
when @Make != '0'
Then @Make
end
【问题讨论】:
-
只是为了您自己的理解,失败的原因是因为您的案例仅在 make != 0 时返回一个值。如果 Make 为 0,您的查询将只显示“和 Make =”。再说一次,这里没有理由使用案例。请参阅下文了解更好的方法(例如使用 OR)。
标签: sql sql-server select case