sql EXCEPT和INTERSECT用法

來源:互聯網
上載者:User

比較兩個查詢的結果,返回非重複值。

EXCEPT 從左查詢中返回右查詢沒有找到的所有非重複值。

INTERSECT 返回 INTERSECT 運算元左右兩邊的兩個查詢都返回的所有非重複值。

以下是將使用 EXCEPT 或 INTERSECT 的兩個查詢的結果集組合起來的基本規則:

所有查詢中的列數和列的順序必須相同。

資料類型必須相容。

Transact-SQL 文法約定

文法

{ <query_specification> | ( <query_expression> ) }
{ EXCEPT | INTERSECT }
{ <query_specification> | ( <query_expression> ) }

參數
<query_specification> | ( <query_expression> )
查詢規範或查詢運算式返回與來自另一個查詢規範或查詢運算式的資料相比較的資料。在 EXCEPT 或 INTERSECT 運算中,列的定義可以不同,但它們必須在隱式轉換後進行比較。如果資料類型不同,則用於執行比較並返回結果的類型是基於資料類型優先順序的規則確定的。

如果類型相同,但精度、小數位元或長度不同,則根據用於合并運算式的相同規則來確定結果。有關詳細資料,請參閱 精度、小數位元和長度 (Transact-SQL)。

查詢規範或運算式不能返回 xml、text、ntext、image 或非二進位 CLR 使用者定義型別列,因為這些資料類型不可比較。

備忘
如果 EXCEPT 或 INTERSECT 運算元左邊和右邊的查詢返回的可比較列的資料類型是具有不同定序的字元資料類型,則根據定序優先順序的規則執行所需的比較。如果無法執行此轉換,Microsoft SQL Server 2005 資料庫引擎將返回錯誤。

通過比較行來確定非重複值時,兩個 NULL 值被視為相等。

EXCEPT 或 INTERSECT 返回的結果集的列名與運算元左側的查詢返回的列名相同。

ORDER BY 子句中的列名或別名必須引用左側查詢返回的列名。

EXCEPT 或 INTERSECT 返回的結果集中的任何列的為空白性與運算元左側的查詢返回的對應列的為空白性相同。

如果 EXCEPT 或 INTERSECT 與運算式中的其他運算子一起使用,則在以下優先順序的上下文中對其進行評估:

括弧中的運算式

INTERSECT 運算元

基於在運算式中的位置從左至右求值的 EXCEPT 和 UNION

如果 EXCEPT 或 INTERSECT 用於比較兩個以上的查詢集,則資料類型轉換是通過一次比較兩個查詢來確定的,並遵循前面提到的運算式求值規則。

EXCEPT 和 INTERSECT 不能在分散式資料分割檢視定義、查詢通知中使用,也不能與 COMPUTE 和 COMPUTE BY 子句一起使用。

EXCEPT 和 INTERSECT 可在分散式查詢中使用,但只在本機伺服器上執行,不會被推送到連結的伺服器。因此,在分散式查詢中使用 EXCEPT 和 INTERSECT 可能會影響效能。

快速順向資料指標和靜態資料指標與 EXCEPT 或 INTERSECT 運算一起使用時,在結果集中完全受支援。如果索引鍵集驅動資料指標或動態資料指標與 EXCEPT 或 INTERSECT 運算一起使用,則運算的結果集的遊標轉換為靜態資料指標。

使用 SQL Server Management Studio 中的圖形執行程序表功能顯示 EXCEPT 運算時,該運算顯示為 left anti semi join,INTERSECT 運算顯示為 left semi join。

例:select fld7 from table4 except select fld7 from table5

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.