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) 

 

转载于:https://www.cnblogs.com/25miao/p/10611518.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值