带有 3 个输出的 Oracle SQL WHERE CASE IN 语句

马特

我有一小段代码,在前端有一个参数输入。

输入选项为是、否和全部,它们等同于:

yes = TRUE
no = FALSE
all = TRUE & FALSE

我的代码是:

SELECT c.ID, 
c.rep, 
c.cust
FROM mytable c 
WHERE '&input' IN (
CASE WHEN 'yes' THEN c.Acc = 'TRUE'
     WHEN 'no' THEN c.Acc = 'FALSE'
     WHEN 'all' THEN c.Acc IN ('TRUE', 'FALSE')
END)

但得到错误:

ORA-00920: 无效的关系运算符

我为 Bac 工作

OR

SELECT c.ID, 
    c.rep, 
    c.cust
FROM mytable c 
WHERE (&input = 'yes' and c.Acc = 'TRUE') OR
      (&input = 'no' and c.Acc = 'FALSE') OR
      (&input = 'all' and c.Acc IN ('TRUE', 'FALSE')) 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章