ALL、ANY和SOME常和子查询语句结合使用,ALL代表了子查询出来的所有结果,而ANY和SOME代表子查询的任意一个结果。
拿SQLZOO中的一张表来举例,表的结构如下:
现在我们要查找人口数比欧洲所有人口数都多的国家名称,那么代码如下:
select name from world
where population > all(select population from world where continent = 'Europe');
- 1
- 2
其中子查询语句的结果是欧洲所有国家人口数的集合,条件子句的含义就是人口数要大于该集合中的所有值,该条件才能成立。
反之如果将all变成any,那么只要大于结果集中任意的一个值条件就成立。
SOME和ANY的用法一致。