日期:2013-05-05  浏览次数:20414 次

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了。