sql中的数据比较

 

ntersect运算 
返回查询结果中相同的部分 
exp:各个部门中有哪些相同的工种 
select job 
from account 
intersect 
select job 
from research 
intersect 
select job 
from sales; 

minus运算 
返回在第一个查询结果中与第二个查询结果不相同的那部分行记录。 
有哪些工种在财会部中有,而在销售部中没有? 
exp:select job from account 
minus 
select job from sales;

select *
from cis.pop_populate a
where a.id not in (select id from cpis.pop_populate)

如果表结构一模一样,你可以这样:

select * from tab1 minus select * from tab2;
得到第一张表有,第二张表没有的记录。

select * from tab2 minus select * from tab1;
得到第二张表有,第一张表没有的记录。

那是因为你两个表的表结构不一样。
我开始说了,“如果表结构一模一样”

如果表结构不一样,那么这样做:
先把一样的字段挑出来,这些字段是你需要做比较的。没有挑出的字段不参与比较。
然后:
select col1, col2, ..., colN from tab1 minus select col1, col2, ..., colN from tab2;
select col1, col2, ..., colN from tab2 minus select col1, col2, ..., colN from tab1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值