SQL Server-----EXISTS()
EXISTS
指定一个子查询,检测行的存在。
指定一个子查询,检测行的存在。
是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。有关更多信息,请参见 SELECT 中有关子查询的讨论。
结果类型
Boolean
结果值
如果子查询包含行,则返回 TRUE。
但是要注意:
在子查询中使用 NULL 仍然返回结果集
这个例子在子查询中指定 NULL,并返回结果集,通过使用 EXISTS 仍取值为 TRUE。
USE Northwind
GO
SELECT CategoryName
FROM Categories
WHERE EXISTS (SELECT NULL)
ORDER BY CategoryName ASC
GO
这种情况下特别要注意这样的用法,如以下示例:
if EXISTS(select ticket from table where ID= 5)
return
else
update …………
如果查询出ID=5这行的ticket列得到的值正好是NULL,那么 EXISTS 仍取值为 TRUE,这样它就只会执行return了。