Oracle SQL OR AND语句

时间:2017-11-14 11:41:11

标签: sql oracle

我有一个像下面这样的要求,其中“”中的文字是从用户传递的

如果用户选择“TutteleAttività”,则不会对此进行过滤。 如果用户选择“SoloAttivitàsenzaImpatto EHS”,则JOBPLAN.PRIORITY = null或JOBPLAN.PRIORITY<> 9 如果用户选择“SoloAttivitàconImpatto EHS”,那么JOBPLAN.PRIORITY = 9

我写了以下代码: 条件......

AND (('Tutte le Attività' = (:IMP))
  OR ('Solo Attività senza Impatto EHS' = (:IMP) and TAB1.PRI IS NULL OR TAB1.PRI NOT IN ('9'))
  OR ('Solo Attività con Impatto EHS' = (:IMP) and TAB1.PRI IN ('9')))

IMP是绑定变量。

由于某种原因,第二个条件正在失败。

我的代码是对吗?

1 个答案:

答案 0 :(得分:0)

AND优先于OR。所以你需要更多的括号:

OR ('Solo Attività senza Impatto EHS' = :IMP
    and (TAB1.PRI IS NULL OR TAB1.PRI NOT IN ('9'))
   )