1. 程式人生 > >資料庫並集union、交集intersect、差集except

資料庫並集union、交集intersect、差集except

資料庫對兩個或多個結果集進行合併、取重、剔除操作時,可以通過UNION、INTERSECT、EXCEPT來實現。

所操作的結果集有如下限制條件:

(1)所有查詢中的列數和列的順序必須相同。
(2)比較的兩個查詢結果集中的列資料型別可以不同但必須相容。
(3)比較的兩個查詢結果集中不能包含不可比較的資料型別(xml、text、ntext、image 或非二進位制 CLR 使用者定義型別)的列。
(4)返回的結果集的列名與運算元左側的查詢返回的列名相同。ORDER BY 子句中的列名或別名必須引用左側查詢返回的列名。
(5)不能與 COMPUTE 和 COMPUTE BY 子句一起使用。
(6)通過比較行來確定非重複值時,兩個NULL值被視為相等。(EXCEPT 或 INTERSECT 返回的結果集中的任何列的為空性與運算元左側的查詢返回的對應列的為空性相同)

使用下面兩個表進行操作


一、並集(UNION)

--返回兩個結果集的並集
(select name from Table_3)union(select stuname from Table_4)

二、交集(INTERSECT)

--返回兩個結果集的交集(返回相同記錄)
(select name from Table_3)intersect(select stuname from Table_4)

三、差集(EXCEPT)

--返回兩個結果集的差集(從前一個表中剔除兩個表中相同的記錄)
(select name from Table_3)except(select stuname from Table_4)