【发布时间】:2018-10-04 01:23:44
【问题描述】:
我有两个关系 A 和 B
表 A
Name Age
------------
Arun 60
Shreya 24
Rohit 11
表 B
Name Age
------------
Hari 40
Rohit 20
Karthik 18
select *
from A
where A.Age > all(select B.Age from B where B.Name = 'Arun');
我知道子查询会返回一个空集。我知道如果有一个空集,all() 会考虑 NULL 值。在这种情况下,外部查询的 where 子句中的谓词应计算为 UNKNOWN,从而消除 from 子句返回的所有元组。
但是,查询返回关系 A 中的所有元组作为输出。
请解释一下 all() 函数是如何处理空集的。
感谢您的帮助!
【问题讨论】:
-
请仅使用您实际使用的数据库标记您的问题。