当前位置:  开发笔记 > 数据库 > 正文

Oracle PL/SQL where condition:不等于0或null

如何解决《OraclePL/SQLwherecondition:不等于0或null》经验,为你挑选了2个好方法。

我选择的id地方不能等于0,值也不能(null).我写:

WHERE id IS NOT NULL (+) and id not in ('0')

我有2个错误

错误(9,5):PL/SQL:忽略SQL语句

错误(38,119):PL/SQL:ORA-00933:SQL命令未正确结束我将其更改为:

WHERE id IS NOT NULL (+) and id is not ('0')  

发生了相同的错误 我应该写什么作为WHERE条款?



1> krokodilko..:

您可以将条件简化为:

WHERE id != 0

因为与NULL的比较(使用两个=或!=运算符)总是求值为NULL(在条件中将SQL视为"假"),
因此NULL!= 0总是求值为FALSE并且您可以在此条件下跳过此部分

WHRE id != 0 AND id IS NOT NULL

Braiam的回答Where nvl(Id,0)<>0虽然正确,但会阻止数据库在id列上使用索引,这可能会对执行产生不良影响.



2> Andris Krauz..:

(+)用于外连接.你应该写:

Where nvl(Id,0)<>0

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有