Posted on 2007-02-11 20:01
dennis 閱讀(4731)
評論(0) 編輯 收藏 所屬分類:
數(shù)據(jù)庫技術(shù)
為了合并多個select語句的查詢結(jié)果,可以使用集合操作符UNION,UNION ALL,INTERSECT和MINUS.語法如下:
?
SELECT語句1?
[
UNION?|?UNION?ALL?|?INTERSECT?|?MINUS
]
?SELECT語句2
?
使用集合操作符有以下一些限制:
.對于LOB,VARRAY,嵌套表類來說,集合操作符無效
.對于LONG型,UNION ALL,INTERSECT和MINUS無效
.如果選擇列表包含了表達(dá)式,必須指定別名
1。UNION,用于獲取兩個結(jié)果集的并集,會自動去掉結(jié)果集中的重復(fù)行,并會以第一列的結(jié)果進(jìn)行排序,例:
?
select
?
*
?
from
?employee?
union
?
select
?
*
?
from
?employee;
?
2。UNION ALL,與UNION相似,不同的是UNION ALL不會自動去處重復(fù)行,也不會以任何列排序
?
??
select
?
*
?
from
?employee?
union
?
all
?
select
?
*
?
from
?employee;
?
3。INTERSECT,用于獲取兩個結(jié)果集的交集,并且以第一列排序,如:
?
select
?
*
?
from
?employee?
intersect
?
select
?
*
?
from
?employee?
where
?id
=
'
1
'
;
?
4。MINUS,用于獲取結(jié)果集的差集(或者說補(bǔ)集),顯示第一個結(jié)果集存在的,第2個結(jié)果集不存在的數(shù)據(jù):
?
select
?
*
?
from
?employee?minus?
select
?
*
?
from
?employee?
where
?id
=
'
1
'
;
?
注意事項:
1。兩個選擇列表必須完全一致
2??梢赃B續(xù)使用集合操作符,這些操作符擁有相同優(yōu)先級,多個操作符存在時,從左向右執(zhí)行,如:
?
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
?