sql求兩表的並集、交集、非交集、差集、結果集排序


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) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM