Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在我的查询中(请注意,我没有使用过程)我需要使用一个布尔参数来定义是否过滤掉某些记录。
我的参数名称是“WO”(= 没有)。所以 - 如果用户选择&WO = 'TRUE'我想要过滤掉一些记录。
&WO = 'TRUE'
我的方法是在 where 子句中使用“case when”,如下所示:
select * from tbl1 where case when &WO = 'TRUE' then tbl1.field1 not in ('AB','CD','EF') end
我知道语法或我的整个方法不正确。
你不能那样使用case;a 的结果case需要与某物进行比较。你可以这样做:
case
select * from tbl1 where nvl('&WO', 'FALSE') != 'TRUE' or tbl1.field1 not in ('AB','CD','EF')
如果第一部分or等于 false - 即是否&WO为空TRUE- 则不评估第二部分。
or
&WO
TRUE