作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
案例: 我有一个存储过程,我在其中获取了一个表的所有信息。我有 2 个参数来设置 Where 子句,但其中一个可能是0.
问题如何根据我的情况在Where
子句中执行Case When
或If
参数值?我只想在值不同于 0 时应用 where 子句如果是 0,我不想这样做。
代码:
@ID_ORDER,
@ID_SUPPLIER
Select *
From Orders ord
where @ID_SUPPLIER = ord.ID_SUPPLIER
AND CASE WHEN @ID_ORDER = 0 THEN ord.ID_ORDER = @ID_ORDER END
最佳答案
你不知道。您只需使用 and
和 or
:
select *
from Orders ord
where ord.ID_SUPPLIER = @ID_SUPPLIER) and
(ord.ID_ORDER = @ID_ORDER or @ID_ORDER = 0);
请注意,您尝试的逻辑是倒退的。这仅在值不为 0
时对 id_order
应用过滤器。
关于sql - 带条件条件的 Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57366978/
我是一名优秀的程序员,十分优秀!