程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> SQL中EXISTS的用法

SQL中EXISTS的用法

編輯:.NET實例教程

比如在Northwind數據庫中  
  有一個查詢為  
  SELECT   c.CustomerId,   CompanyName  
  FROM   Customers   c  
  WHERE   EXISTS(  
              SELECT   OrderID   FROM   Orders   o  
              WHERE   o.CustomerID   =   cu.CustomerID)  
   
  這裡面的EXISTS是如何運作呢?子查詢返回的是OrderId字段,可是外面的查詢要找的是CustomerID和CompanyName字段,這兩個字段肯定不在OrderID裡面啊,這是如何匹配的呢?

 

EXISTS用於檢查子查詢是否至少會返回一行數據,該子查詢實際上並不返回任何數據,而是返回值True或False

 

EXISTS


指定一個子查詢,檢測行的存在。

語法


EXISTS subquery

參數

subquery

是一個受限的 SELECT 語句 (不允許有 COMPUTE 子句和 INTO 關鍵字)。有關更多信息,請參見 中有關子查詢的討論。

結果類型


Boolean

結果值


如果子查詢包含行,則返回 TRUE。

示例
A. 在子查詢中使用 NULL 仍然返回結果集


這個例子在子查詢中指定 NULL,並返回結果集,通過使用 EXISTS 仍取值為 TRUE。

USE Northwind
GO
SELECT CategoryName
FROM CategorIEs
WHERE EXISTS (SELECT NULL)
ORDER BY CategoryName ASC
GO
B. 比較使用 EXISTS 和 IN 的查詢


這個例子比較了兩個語義類似的查詢。第一個查詢使用 EXISTS 而第二個查詢使用 IN。注意兩個查詢返回相同的信息。

USE pubs
GO
SELECT DISTIN
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved