| 谓词允许您构造条件,以便只处理满足这些条件的那些行。基本谓词在 |
| 选择行 讨论。本节讨论 IN、BETWEEN、LIKE、EXISTS 以及定量谓词。 |
| 使用 IN 谓词将一个值与其他几个值进行比较。例如: |
| WHERE DEPT = 20 OR DEPT = 15 |
当子查询返回一组值时 MA2100 和 OP2012 的雇员
|
,可使用 IN 和 NOT IN 运算符 的姓:
|
。例如,下列查询列出负责项目
|
计算一次子查询,并将 10 和 330,对外层查询进
|
结果列表直接代入外层查询。例 行计算,就好象 WHERE 子句如
|
如,上面的子查询选择雇员编号 下:
|
使用 BETWEEN 谓词将 并考虑 BETWEEN 谓词中用
|
一个值与某个范围内的值进行比 于比较的两个表达式。
|
较。范围两边的值是包括在内的,
|
| 下一示例寻找收入在 ,000 和 ,000 之间的雇员的姓名: |
WHERE SALARY BETWEEN 100
|
00 AND 20000
|
| WHERE SALARY >= 10000 AND SALARY <= 20000 |
下一个示例寻找收入少于 ,000
|
或超过 ,000 的雇员的姓名:
|
WHERE SALARY
|
NOT BETWEEN 10000 AND 20000
|
| 使用 LIKE 谓词搜索具有某些模式的字符串。通过百分号和下划线指定模式。 |
| 下列示例选择以字母'S'开头长度为 7 个字母的雇员名: |
| WHERE NAME LIKE 'S_ _ _ _ _ _' |
可使用子查询来测试满足某个条件的 EXISTS 将子查询链接到外层查询。
|
行的存在性。在此情况下,谓词 EXISTS 或 NOT
|
当用 EXISTS 谓词将子 回答集包含一个或更多个行 词为假。
|
查询链接到外层查询时,该子查 ,则 EXISTS 谓词为真;如果回
|
询不返回值。相反,如果子查询的 答集不包含任何行,则 EXISTS 谓
|
通常将 EXISTS 谓词与 有项的部门:
|
相关子查询一起使用。下面示例
|
列出当前在项目(PROJECT) 表中没
|
可通过在外层查询的 WHERE 子句中 其他谓词连接起来。
|
使用 AND 和 OR 将 EXISTS 和 NOT EXISTS 谓词与
|
| 定量谓词将一个值和值的集合进行比较。如果全查询返回多个值,则必须通过附加后缀 ALL、ANY 或 SOME 来修改谓词中的比较运算符。这些后缀确定如何在外层谓词中处理返回的这组值。使用>比较运算符作为示例(下面的注释也适用于其他运算符): |
| 如果该表达式大于由全查询返回的每个单值,则该谓词为真。如果全查询未返回值,则该谓词为真。如果指定的关系至少对一个值为假,则结果为假。注意:<>ALL 定量谓词相当于 NOT IN 谓词。 |
| 下列示例使用子查询和> ALL 比较来寻找收入超过所有经理的所有雇员的姓名和职业: |
如果表达式至少大于由全查询返回的 谓词为假。注意:=ANY 定量运算符相当
|
值之一,则该谓词为真。如果全查询未返回值,则该 于 IN 谓词。
|
|
|