天天看點

SQL Server 2005中Except和Intersect的用法示例

文法:

{ <query_specification> | ( <query_expression> ) }

{ EXCEPT | INTERSECT }

{ <query_specification> | ( <query_expression> ) }

說明:

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

EXCEPT

從左查詢中傳回右查詢沒有找到的所有非重複值。(如圖一的藍色部分)

INTERSECT

傳回 INTERSECT

操作數左右兩邊的兩個查詢都傳回的所有非重複值。(如圖二的中間紅色部分)

圖一:

圖二:

注意事項:

查詢規範或表達式不能傳回 xml、text、ntext、image

或非二進制 CLR

使用者定義類型列,因為這些資料類型不可比較。

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

資料類型必須相容。

通過比較行來确定非重複值時,兩個 NULL

值被視為相等。

或 INTERSECT

傳回的結果集的列名與操作數左側的查詢傳回的列名相同。

 示例如下:

A表 B表
Field_A  (int) Field_B  (int)
1
2
3
4
NULL
5

查詢語句一:

select * from A

except

select * from B

結果:

查詢語句二:

intersect