第三章 SQL谓词 ALL
将值与子查询中的所有对应值匹配。
大纲
scalar-expression comparison-operator ALL (subquery)
参数
-
scalar-expression
- 将其值与子查询生成的结果集进行比较的标量表达式(最常见的是数据列)。 -
comparison-operator
- 以下比较操作符之一:=
(等于),<>
或!=
(不等于),<
(小于),<=
(小于或等于),>
(大于),>=
(大于或等于),[
(包含),或]
(跟随)。 -
subquery
- 一个用括号括起来的子查询,它从单个列返回一个结果集,用于与标量表达式进行比较。
描述
ALL
关键字与比较操作符一起创建谓词(量化比较条件),如果标量表达式的值与子查询检索到的所有对应值匹配,则该谓词为真。
ALL
谓词将单个标量表达式项与单个子查询SELECT
项进行比较。
具有多个选择项的子查询将生成SQLCODE -10
错误。
ALL
可以在任何可以指定谓词条件的地方使用,如本手册的谓词概述页面所述。
在适用的情况下,系统自动对ALL
子查询应用集值子查询优化(SVSO
)。
示例
下面的示例选择了Person
数据库中小于Employee
数据库中所有年龄的年龄:
SELECT DISTINCT Age FROM Sample.Person
WHERE Age < ALL
(SELECT Age FROM Sample.Employee)
ORDER BY Age
下面的示例选择Person
数据库中比Employee
数据库中所有名称更长或更短的名称:
SELECT $LENGTH(Name) AS NameLength,Name FROM Sample.Person
WHERE $LENGTH(Name) > ALL
(SELECT $LENGTH(Name) FROM Sample.Employee)
OR $LENGTH(Name) < ALL
(SELECT $LENGTH(Name) FROM Sample.Employee)
![](https://img.haomeiwen.com/i2596900/963df6aea595ca25.png)
下面的示例返回密西西比河以西的州的列表,所有州都不包含拥有经理或董事头衔的员工:
SELECT DISTINCT State
FROM Sample.USZipCode
WHERE Longitude < -93
AND State != ALL
(SELECT Home_State FROM Sample.Employee
WHERE Title [ 'Manager' OR Title [ 'Director')
ORDER BY State
网友评论