数组表达式
右侧括号中的是一个表达式列表。左侧表达式的结果与表达式列表的内容进行比较。如果列表中的内容符合左侧表达式的结果,则IN的结果为true。如果没有相符的结果,则IN的结果为false。
示例如下:
_expression NOT IN (value [, …])_
示例如下:
提示:在所有情况下X NOT IN Y等价于NOT(X IN Y)。
_expression operator \*ANY ***(array expression)_
右侧括号中的是一个数组表达式,它必须产生一个数组值。左侧表达式的结果使用操作符对数组表达式的每一行结果都进行计算和比较,比较结果必须是布尔值。
- 如果对比结果至少获取一个真值,则ANY的结果为true。
SOME是ANY的同义词。
_expression operator \*ALL ***(array expression)_
- 如果所有的比较结果都为真值(包括数组不含任何元素的情况),则ALL的结果为true。
- 如果存在一个或多个比较结果为假值,则ALL的结果为false。
如果数组表达式产生一个NULL数组,则ALL的结果为NULL。如果左边表达式的值为NULL ,则ALL的结果通常也为NULL(某些不严格的比较操作符可能得到不同的结果)。另外,如果右边的数组表达式中包含null元素并且比较结果没有假值,则ALL的结果将是NULL(某些不严格的比较操作符可能得到不同的结果), 而不是真。这样的处理方式和SQL返回空值的布尔组合规则是一致的。