子查詢規則

子查詢具有下列限制:

  • 比較運算子所提出之子查詢選取清單只能包含一個運算式或資料行名稱 (除了分別運作於 SELECT * 或清單上的 EXISTS 與 IN)。

  • 若外部查詢的 WHERE 子句包含了資料行名稱,它必須與子查詢選取清單中的資料行具有聯結相容性。

  • ntext、text 以及 image 資料類型無法在子查詢的選取清單中使用。

  • 因為它們必須傳回單一數值,未修改的比較運算子 (也就是後面沒有跟著關鍵字 ANY 或 ALL) 所提出的子查詢不能包含 GROUP BY 與 HAVING 子句。

  • 不能在包含 GROUP BY 的子查詢內使用 DISTINCT 關鍵字。

  • 不能指定 COMPUTE 與 INTO 子句。

  • 若有指定 TOP 的話,就只能指定 ORDER BY。

  • 不能更新以子查詢建立的檢視。

  • EXISTS 所採用的子查詢選取清單,依慣例將包含星號 (*),而非單一資料行名稱。EXISTS 採用的子查詢規則將和標準選取清單的規則一樣,因為 EXISTS 採用的子查詢構成一個存在測試,並傳回 TRUE 或 FALSE,而不是傳回資料。

請參閱

概念