【发布时间】:2012-12-31 21:39:03
【问题描述】:
我正在创建这样的查询:
v_sql:=' SELECT abc FROM '||v_table||'
WHERE area IN ('''||v_area||''')
AND (
('''||p_supp_nbr||''' IS NULL)
OR
supplr_vn IN ('''||p_supp_nbr||''')
)
现在当p_supp_nbr 是NULL 时,它不会被占用。
我是这样的:
((''IS NULL) OR (supplr_vn =''))
它在表中的检查空间
但我想要((NULL IS NULL) OR (supplr_vn =NULL)) 这样条件就失效了
【问题讨论】:
-
null is null是否不用检查。 -
我需要检查bcos它是一个可选参数。目前它在表中的检查空间
-
不,你不明白。无需将
null is null作为任何where子句的一部分。如果p_supp_nbr is null,则不要包含where子句的那部分。 -
如果我不包括当用户没有在参数中输入任何内容时,我需要忽略该条件。如果我检查 supplr_Vvn=NULL 那么它是错误的。所以这个条件是必需的
-
0_0 嗯...你永远都不想检查任何东西是否等于
null。 Null 不是一个值。只需根据您的哪些参数(如果有)恰好是null来更改where子句。
标签: sql oracle dynamic plsql plsqldeveloper