oracle集合查詢

2021-06-17 17:13:56 字數 2068 閱讀 4277

集合操作符專門用於合併多條select 語句的結果,包括:union, union all, intersect , minus。當使用集合操作符時,必須確保不同查詢的列個數和資料型別匹配。

集合操作符具有以下注意事項:

* 集合操作符不適用於lob、varray和巢狀表列。

* union、intersect、minus操作符不使用於 long列。

* 如果選擇列表中包含有表示式或者函式,那麼必須為表示式或者函式定義列別名。

1、union (無重並集):當執行union 時,自動去掉結果集中的重複行,並以第一列的結果進行公升序排序。

2、union all (有重並集):不去掉重複行,並且不對結果集進行排序。

3、intersect (交集):取兩個結果集的交集,並且以第一列的結果進行公升序排列。

select   id,name,job   from worker

intersect

select empno,ename,job from emp;

4、minus (差集):只顯示在第乙個集合中存在,在第二個集合中不存在的資料。並且以第一列的結果進行公升序排序。

select customernumber,dzmc,createtime,lastsendtime from userinfo hsu1,(select hsu.customerid,hsu.nameareainfoid from

userinfo hsu where hsu.ispackage=0 and hsu.substatus=0

and hsu.createtimeminus

select distinct hbr.customerid,hbr.nameid from revmagazineinfo hbr

where hbr.sendtime)temp

where hsu1.ispackage=0 and hsu1.customerid=temp.customerid

and hsu1.nameareainfoid=temp.nameareainfoid and hsu1.substatus=0 and hsu1.createtimeselect *

from (select hsu.customerid,

hsu.customernumber,

hsu.magazineid,

hsu.nameareainfoid

from userinfo hsu

where hsu.ispackage = 0

and (hsu.substatus = 0 or hsu.substatus = 3)

and hsu.nameareainfoid in

(select distinct mi.nameid

from magazineinfo mi

where mi.pubtime < sysdate

and mi.status = 1)

and not exists

(select 1

from revmagazineinfo hbr

where hbr.customerid = hsu.customerid

and hbr.nameid = hsu.nameareainfoid))

5、另外,可以使用order by

order by 必須放在最後一條select 語句之後,當列名相同時,可以直接用列名排序,如果不同可以用位置排序,也可以使用別名使其相同。

select id, name x from new_emp

union all

select empno, ename x from emp order by x;//列名不同時使用別名排序

select id, name   ename from new_emp

union all

select empno, ename   from emp order by ename;//列名不同時使用別名使其相同後排序

select id, name   ename from new_emp

union all

select empno, ename   from emp ;//合併後列名顯示以前乙個表為主

Oracle 集合查詢

1 並集運算 union 注意 union 二個集合中,如果都有相同的,取其一 union all 二個集合中,如果都有相同的,都取出來。例 使用並集運算,查詢20號或30號部門的員工資訊。select from emp where deptno 30 union select from emp w...

oracle 查詢語句集合

整理了下這兩天用到的oracle 查詢語句,作為記錄。1,查詢當前使用者所有的表資訊 select from user tables order by table name 2,查詢表空間的使用情況 select a.tablespace name,a.bytes 1024 1024 sum mb ...

oracle子查詢和集合查詢

子查詢 子查詢的作用 查詢條件未知的事物 查詢條件已知的問題 例如 查詢工資為800的員工資訊 查詢條件未知的問題 例如 查詢工資為20號部門平均工資的員工資訊 乙個條件未知的問題,可以分解為多個條件已知的問題 查詢工資比ward高的員工資訊 第一 查詢ward的工資?select sal from...