create table A( id int IDENTITY(1,1) Not null primary key, name varchar(20) not null default(''), ) INSERT INTO [A]([name]) VALUES('a') INSERT INTO [A]([name]) VALUES('b') INSERT INTO [A]([name]) VALUES('c') INSERT INTO [A]([name]) VALUES('d') INSERT INTO [A]([name]) VALUES('e') INSERT INTO [A]([name]) VALUES('f') INSERT INTO [A]([name]) VALUES('g') create table B( id int IDENTITY(1,1) Not null primary key, name varchar(20) not null default(''), ) INSERT INTO [B]([name]) VALUES('a') INSERT INTO [B]([name]) VALUES('b') INSERT INTO [B]([name]) VALUES('c') INSERT INTO [B]([name]) VALUES('d') INSERT INTO [B]([name]) VALUES('h') INSERT INTO [B]([name]) VALUES('i') INSERT INTO [B]([name]) VALUES('j')
SELECT * from A union select * from B --查詢A\B表的並集重復的項只顯示一個 SELECT * from A union all select * from B ----查詢A\B表的並集重復的也顯示 SELECT * from A union all select * from B order by id asc ---查詢A\B表的並集重復的也顯示,並按照id升序 SELECT * from A INTERSECT select * from B ----查詢兩表的交集 SELECT * from A EXCEPT select * from B ----查詢A表中不與B表重復的記錄 --查詢A\B兩表中所有非交集的記錄 (SELECT * from A EXCEPT select * from B) union (SELECT * from B EXCEPT select * from A)