关键字:
KingbaseES ,In,Exists
内容正文:
In 和Exists 是KingbaseES子查询表达式用到的操作符。
- In的用法 expression IN (subquery)
括号中是子查询返回一列值,而左边expression表达式将被计算并与子查询结果逐一进行比较,只要与右边子查询中有任一个值匹配,则in 表达式返回“真”,如果没有找到相等行,那么结果是“假”(包括子查询没有返回任何行的情况)。如果expression值为null ,则返回结果为null;如果subquery 含有null 值,则返回结果为null。
如下表所示:
expression | subquery | 比较 | in result |
values | values | 只要有一个匹配 | 真 |
values | values | 没有一个匹配 | 假 |
values | values有null值 | / |
|
null | values(或者有null值) | / | null |
验证结果如图所示:
- Exists 的用法 EXISTS (subquery)
通过对subquery进行运算判断subquery是否有返回行,如果有返回行,则exists表达式结果为 “真”,如果没有返回行,则exists表达式结果为“假”。这个subquery通常只是运行到能判断它是否可以返回至少一行为止,而不是等到全部结束。
验证语句如下图所示:
有关这两个操作符的具体详细的使用细节请参考官方产品用户文档中的路径: