NOT IN在Oracle中有一个条件



我想仔细检查一下:

如果您使用的WHERE子句带有NOT IN条件,并且只有一个条件,那么是否必须将该条件保留在括号中?

因此,在下面的条款中,如果删除Y和Z,X是否必须保留在括号中(参见下面的第二个WHERE NOT IN CLAUSE(。

WHERE LastEditedBy NOT IN ('X','Y','Z') 
WHERE LastEditedBy NOT IN ('X') 

文档中的语法图根据需要显示括号,但没有括号也能工作:

select * from dual where dummy not in 'Y';
DUMMY
-----
X

select * from dual where dummy in 'X';
DUMMY
-----
X

两者都返回数据。

db<gt;小提琴

无论如何,包含括号并不会让你付出任何代价,让你与官方语法保持一致(正如@jarlh所指出的,依赖未记录的行为是不明智的(,对于其他查看你的代码的人来说,可能不会那么令人困惑,并且如果你以后需要向列表中添加更多值,将来的维护会稍微容易一些。

最新更新