文法:
{ <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