第六章 SQL谓词 EXISTS

2021-12-06  本文已影响0人  Cache技术分享

第六章 SQL谓词 EXISTS

检查表中是否至少存在一个对应行。

大纲

EXISTS select-statement

参数

描述

EXISTS谓词测试指定的表,通常至少测试一行是否存在。
因为EXISTS后面的SELECT语句正在被检查是否包含某些内容,所以子句通常是这样的形式:

EXISTS (SELECT... FROM... WHERE...)
SELECT name
     FROM Table_A
     WHERE EXISTS
     (SELECT *
          FROM Table_B
          WHERE Table_B.Number = Table_A.Number)

在本例中,谓词测试子查询指定的一行或多行是否存在。

注意,测试必须发生在SELECT语句上(而不是在UNION上)。

NOT EXISTS子句测试表中是否有一行不存在,如下例所示:

SELECT EmployeeName,Age
     FROM Employees
     WHERE NOT EXISTS (SELECT * FROM BonusTable
     WHERE NOT (BonusTable.Result = 'Positive'
     AND Employees.EmployeeNum = BonusTable.EmployeeNum))

EXISTS可以在任何可以指定谓词条件的地方使用,如本手册的谓词概述页面所述。

在适用的情况下,系统自动对存在或不存在的子查询应用集值子查询优化(SVSO)。

上一篇下一篇

猜你喜欢

热点阅读