oracle集合的操作

2021-05-27 12:18:02 字數 457 閱讀 4560

oracle關於集合的操作給我們提供了三個集合操作函式。

並集:union           把兩個集合連線起來,同時去掉重複行,進行預設的排序

union all     把兩個集合拼起來,重覆記錄重複顯示,不進行排序

交集:intersect     求兩個集合的交集,進行預設排序

差集:minus         求兩個集合的差集,並預設排序

但是oracle的集合操作,會預設取第乙個集合的列名和型別,如果第二個集合的字段型別不符,則會報錯,但是如果型別一樣就是列名不一樣,oracle不回報錯而是會直接拼在第乙個集合的下面。

我今天碰到了乙個不可思議的問題,用union鏈結的兩個sql查詢,查詢結果與調換兩個sql查詢的順序結果卻不一樣,但是後來調查了一下,發現原來是兩個集合的列名順序有乙個搞錯了,oracle直接按照第乙個sql的查詢集合和第二個查詢結果進行了union,所以兩次查詢結果不一樣。

Oracle集合操作

1.union 得到兩個結果集的並集 不含重複值 example select name,nameid from table where classid 10 union select name,nameid form table where classid 20 相當於 select name,n...

Oracle集合操作

在oracle中提供了三種型別的集合操作 並 union 交 intersect 差 minus 首先,建立還有乙個表 emp10 建立反覆資料表 emp10 create table emp10 as select from emp where deptno 10 檢視emp10 和 emp 表資...

Oracle集合操作

size large b union all b 返回各個查詢檢索出的所有的行,不過濾掉重覆記錄 b union b 返回各個查詢檢索出的過濾掉重覆記錄的所有行,即並集 b intersect b 返回兩個查詢檢索出的共有行,即交集 b minus b 返回將第二個查詢檢索出的行從第乙個查詢檢索出的...