expression comparison-operator { ANY | SOME }( subquery )
comparison-operator: = | > | < | >= | <= | <> | != | !< | !>
关键字 ANY 与 SOME 是同义字。
对于 ANY 和 SOME 搜索条件,如果子查询结果集为空集,则搜索条件的结果值为 FALSE。否则,搜索条件的值为 TRUE、FALSE 或 UNKNOWN,这要视 expression 的值以及子查询所返回的结果集而定,具体对应关系如下:
如果表达式值为.. | 并且子查询所返回的结果集至少包含一个 NULL,那么.. | 或者子查询所返回的结果集不含 NULL,那么.. |
---|---|---|
NULL | UNKNOWN | UNKNOWN |
非 NULL | 如果子查询结果集中至少存在一个值与表达式进行比较后所得的值为 TRUE,则搜索条件的值为 TRUE。否则,搜索条件的值为 UNKNOWN。 | 如果子查询结果集中至少存在一个值与表达式进行比较后所得的值为 TRUE,则搜索条件的值为 TRUE。否则,搜索条件的值为 FALSE。 |
对于带相等运算符的 ANY 或 SOME 搜索条件,如果 expression 等于子查询结果中的任何一个值,则该搜索条件的结果值为 TRUE;如果表达式的值不为 NULL 且不等于子查询结果中的任何值,而且结果集中也不包含 NULL,则该搜索条件的结果值为 FALSE。
使用 = ANY 或 = SOME 就相当于使用 IN 关键字。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |