2007-02-11
oracle中的合并查询
为了合并多个select语句的查询结果,可以使用集合操作符UNION,UNION ALL,INTERSECT和MINUS.语法如下:
SELECT语句1
[
UNION | UNION ALL | INTERSECT | MINUS
]
SELECT语句2
使用集合操作符有以下一些限制:
.对于LOB,VARRAY,嵌套表类来说,集合操作符无效
.对于LONG型,UNION ALL,INTERSECT和MINUS无效
.如果选择列表包含了表达式,必须指定别名
1。UNION,用于获取两个结果集的并集,会自动去掉结果集中的重复行,并会以第一列的结果进行排序,例:
select
*
from
employee
union
select
*
from
employee;
2。UNION ALL,与UNION相似,不同的是UNION ALL不会自动去处重复行,也不会以任何列排序
select
*
from
employee
union
all
select
*
from
employee;
3。INTERSECT,用于获取两个结果集的交集,并且以第一列排序,如:
select
*
from
employee
intersect
select
*
from
employee
where
id
=
'
1
'
;
4。MINUS,用于获取结果集的差集(或者说补集),显示第一个结果集存在的,第2个结果集不存在的数据:
select
*
from
employee minus
select
*
from
employee
where
id
=
'
1
'
;
注意事项:
1。两个选择列表必须完全一致
2。可以连续使用集合操作符,这些操作符拥有相同优先级,多个操作符存在时,从左向右执行,如:
SQL
>
select
*
from
employee minus
select
*
from
employee
where
id
=
'
1
'
union
select
*
from
employee
where
id
=
'
1
'
;
ID NAME SALARY EMAIL
--
-------- ---------- ---------- ------------------------------
1
love
3100
fasda
2
love
4100
killme2008
@gmail
发表评论
我的留言簿
-
你好,看过你关于自定义classloader的回帖,想问问几个问题:
  ...
-- by llp20_2000
最近加入圈子
最新评论
-
Ruby Tip——读文件
花花公子 写道IO.read("test.log")嗯,这个方法我是知道的,我前 ...
-- by dennis_zane -
Ruby Tip——读文件
IO.read("test.log")
-- by 花花公子 -
一封邮件
咋我没收到呢....
-- by yangzhihuan -
漂亮的代码
说得比较深.看的时候,觉得句句都正中心坎.看完之后,好像没啥收获.还是要自己试过 ...
-- by yangzhihuan -
广州opensource camp小记
貌似你那件open source camp的T-shirt背后很多广告滴说.
-- by yangzhihuan







评论排行榜