我遇到了多个查询,这些查询使用全数量子作为最大子查询:
之间有什么区别
SELECT name FROM bbc WHERE population > ALL (SELECT MAX(population) FROM bbc WHERE region = 'Europe') AND region = 'South Asia'
和
SELECT name FROM bbc WHERE population > (SELECT MAX(population) FROM bbc WHERE region = 'Europe') AND region = 'South Asia'
?
SELECT MAX 是一个聚合操作,因此,您的子查询将选择一行。
SELECT MAX
应用于ALL单行将无效。
ALL
如果子查询返回多行,则非ALL版本将导致错误。另请注意,使用时ALL,您可以MAX从子查询中删除,并会获得正确的结果(大概具有相同的性能特征)。
MAX