EXITS

可以用EXISTS 和 NOT EXISTS 子句判断某个值是否在一系列的值中。 EXISTS 和 NOT EXISTS 子句和相关子查询一同使用时，可以限制外层查询 ，使其结果集符合子查 询的条件。基于某一条记录是否满足子查询，EXISTS 和 NOT EXISTS 子句将返回 TRUE 或 FALSE。

当子查询和 EXISTS 或 NOT EXISTS 子句共同使用时，SQL Server 将测试数据是否匹配子查询结果集的某一条记录。其实并没有返回任何记录。当 SQL Server 知道至少有一条记录满足子查询中的 WHERE 条件时，就将结束数据搜索。

当 SQLServer 处理一个包含 EXISTS 或 NOTEXISTS 的子查询时：

外层查询测试子查询返回的记录是否存在；

基于查询所指定的条件，子查询返回 TRUE 或 FALSE；

子查询不产生任何数据。

EXISTS

指定一个子查询，检测行的存在。

语法

EXISTS subquery

参数

Subquery

是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。有关更多信息，请参见 SELECT 中有关子查询的讨论。

结果类型

Boolean

结果值

如果子查询包含行，则返回 TRUE。

示例

这个例子在子查询中指定 NULL，并返回结果集，通过使用 EXISTS 仍取值为 TRUE。

USE Northwind

GO

SELECT CategoryName

FROM Categories

WHERE EXISTS (SELECT NULL)

ORDER BY CategoryName ASC

GO