我选择的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
条款?
答案 0 :(得分:6)
您可以将条件简化为:
WHERE id != 0
因为与NULL的比较(使用两个=或!=运算符)总是求值为NULL(在SQL中将其视为" false"在条件中),
因此NULL!= 0始终计算为FALSE,您可以在此条件下跳过此部分
WHRE id != 0 AND id IS NOT NULL
Braiam的回答Where nvl(Id,0)<>0
虽然正确,但会阻止数据库在id
列上使用索引,这可能会对执行产生不良影响。
答案 1 :(得分:5)
(+)用于外连接。你应该写:
Where nvl(Id,0)<>0
答案 2 :(得分:3)
不应该是
WHERE id IS NOT NULL
AND id != 0