pl/sql可选参数

mepcadol  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(373)

我真的非常感谢您的帮助
我想知道如何在where中设置可选参数

WHERE T.ID_NUM = :ID_NUM
OR ASOL.CASE_ID = :CASE_ID

例如:
id\u num不能在参数中有任何值,但case\u id在参数中有值
id\u num在参数中有值,但case\u id在参数中没有值
id\u num在参数中有值,case\u id在参数中有值
当我说它没有值时,参数是空的或“未定义”
谢谢您

vsmadaxz

vsmadaxz1#

我想你想要:

WHERE (T.ID_NUM = :ID_NUM OR :ID_NUM IS NULL) AND
      (ASOL.CASE_ID = :CASE_ID OR :CASE_ID IS NULL)

我猜你真的想要 AND ,不是 OR 在条件之间。

mkshixfv

mkshixfv2#

您可以在子句中添加一个nvl函数,如果您在参数中发送一个null值,那么查询将使用第二个comparison,并且第二个comparison始终为true

WHERE  T.ID_NUM     = NVL(:ID_NUM  , T.ID_NUM    )
  OR   ASOL.CASE_ID = NVL(:CASE_ID , ASOL.CASE_ID)

相关问题