Oracle SQL - Where语句 - 不是NULL而不是IN

时间:2018-04-10 14:46:51

标签: sql oracle

我的sql中的 WHERE 语句存在问题。

我希望所有不是空值,但我也想要排除值为X或值为Y

的记录
WHERE FIELD_A IS NOT NULL AND FIELD_A != '4' FIELD_A OR != '5'

但结果不正确...... 我想也许......

 WHERE FIELD_A IS NOT NULL AND FIELD_A NOT IN ('4','5')

但我认为这是不好的做法,不会产生可靠的结果......

任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

实际上,这完全符合您的要求:

WHERE FIELD_A NOT IN ('4', '5')  -- don't use sigle quotes if the values are numbers

当任一参数为NULL时,几乎所有布尔运算符都返回NULLNULL值的过滤方式与" false"相同。值在WHERE子句中执行。

明确没有问题,如第二个例子。

答案 1 :(得分:-2)

戈登说你也可以用这个:

WHERE  FIELD_A != '4' AND  FIELD_A  != '5'

这是完全相同的事情。