oracle is null 的用法问题?
问:存储过程中我的变量为:
v_status varchar2(5) :=null;
在语句中这样使用:
SELECT * FROM A
WHERE (v_status is nul or A.status=v_status or A.status=1)
请问当v_status满足条件为null的时候,还会不会执行or后面的的语句?
注:因为正常情况在说,or前后的条件语句都会被执行..
------解决方案--------------------会啊,或者嘛!
------解决方案--------------------当 v_status 满足条件为 null 的时候,实际是不判断后面的 or 之后的条件了
也就是说将 A 表里所有的数据查询出来
------解决方案--------------------v_status is null 这一句 就说明是全真了
怀疑你是不是写错了? 应该是 A.status is null 吧?
------解决方案--------------------Yes, I think 3# floor is correct. The sentence is written wrong.
SELECT * FROM A
WHERE (A.status is nul or A.status=v_status or A.status=1)
------解决方案--------------------不会,前面为真就已经可以确定整个表达式为真。
------解决方案-------------------- v_status varchar2(5) :=null;
在语句中这样使用:
SELECT * FROM A
WHERE (v_status is nul or A.status=v_status or A.status=1)
结果就是
SELECT * FROM A