Oracle SQL 不同的 where 子句与 case when
Posted
技术标签:
【中文标题】Oracle SQL 不同的 where 子句与 case when【英文标题】:Oracle SQL different where clauses with case when 【发布时间】:2021-06-07 09:31:25 【问题描述】:愚蠢的问题,因为我想用 where 子句的两个选项开始一个 select 语句,并停留在我可以过滤它的部分。问题是,我希望选项说“如果 RS_BEM 是 A1 或 A2,则搜索不在列表中的 ID,如果还有其他搜索在列表中的 ID”。
and Case when :RS_BEM like 'A1' or :RS_BEM like 'A2' then ate_msg_nr not in (select * from StoerIDs) else ate_msg_nr in (select * from StoerIDs) end
我敢打赌这非常容易,但不知何故我没有看到它。
【问题讨论】:
【参考方案1】:使用AND
、OR
和括号:
where (:RS_BEM in ('A1', 'A2') and ate_msg_nr not in (select * from StoerIDs))
or (:RS_BEM not in ('A1', 'A2') and ate_msg_nr in (select * from StoerIDs))
【讨论】:
非常感谢。就是这样。以上是关于Oracle SQL 不同的 where 子句与 case when的主要内容,如果未能解决你的问题,请参考以下文章
在 where 子句中使用 Oracle SQL 变量时遇到问题