Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2076207
  • 博文数量: 519
  • 博客积分: 10070
  • 博客等级: 上将
  • 技术积分: 3985
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-29 14:05
个人简介

只问耕耘

文章分类

全部博文(519)

文章存档

2016年(1)

2013年(5)

2011年(46)

2010年(220)

2009年(51)

2008年(39)

2007年(141)

2006年(16)

我的朋友

分类: Oracle

2010-08-13 17:20:38

intersect运算?
返回查询结果中相同的部分?
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;


 

阅读(1071) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~