【问题标题】:Oracle CASE issue - after THEN NOT NULLOracle CASE 问题 - THEN NOT NULL 之后
【发布时间】:2018-12-27 03:06:55
【问题描述】:

当我需要为数字列添加输入参数时,我会编辑 Oracle 报表。我想使用值列表:

  • 0 - 否
  • 0 - 是
  • 全部=全部

在我的代码中正确运行“否”和“全部”,但对于“是”,我不知道该怎么做。 请问你能帮帮我吗?

 AND column1 = (CASE 
                  WHEN (:p_parameter = 'YES') THEN <> 0
                  WHEN (:p_parameter= 'NO') THEN 0
                  WHEN (:p_parameter = 'ALL') THEN column1
                  ELSE column1 
              END)

提前致谢

【问题讨论】:

  • 您确定 p_parameter 的值在正确的情况下是 YES 而不是小写(如 yes 或 Yes)??

标签: oracle case notnull


【解决方案1】:

不要在where 子句中使用case。简单的逻辑总能解决问题

AND 
(
  (:p_parameter = 'YES' and column1 <> 0) OR
  (:p_parameter = 'NO' and column1 = 0) OR
  (:p_parameter = 'ALL')
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多