溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Oracle的集合操作(union、union all、intersect、minus集合函數(shù))

發(fā)布時(shí)間:2020-08-16 20:54:46 來源:ITPUB博客 閱讀:162 作者:Z少校 欄目:關(guān)系型數(shù)據(jù)庫(kù)

Oracle中的集合操作用于多條select語句合并結(jié)果。用于集合操作的函數(shù)如下:

union               并集 去重   //默認(rèn)有排序操作

union all         并集 不去重   //默認(rèn)不排序

intersect         交集     //并且去重排序

minus              差集     //  前表中有,后表中沒有的差集

1.union

A集合和B集合的合并,但去掉兩集合重復(fù)的部分 會(huì)排序。

示例:

select deptno,ename from emp where deptno in (20,30)
union
select deptno,ename from emp where deptno in (20,10);
    DEPTNO ENAME
---------- ----------
10 CLARK
10 KING
10 MILLER
20 ADAMS
20 FORD
20 JONES
20 SCOTT
20 SMITH
30 ALLEN
30 BLAKE
30 JAMES
30 MARTIN
30 TURNER
30 WARD
14 rows selected.

2.union all

A集合和B集合的合并,不去重,不排序。

示例:

select deptno,ename from emp where deptno in (20,30)
union all
select deptno,ename from emp where deptno in (20,10);
    DEPTNO ENAME
---------- ----------
20 SMITH
30 ALLEN
30 WARD
20 JONES
30 MARTIN
30 BLAKE
20 SCOTT
30 TURNER
20 ADAMS
30 JAMES
20 FORD
20 SMITH
20 JONES
10 CLARK
20 SCOTT
10 KING
20 ADAMS
20 FORD
10 MILLER
19 rows selected.

3.intersect

兩個(gè)集合的交集部分,排序并去重。

示例:

select deptno,ename from emp where deptno in (20,30)
intersect
select deptno,ename from emp where deptno in (20,10);
    DEPTNO ENAME
---------- ----------
20 ADAMS
20 FORD
20 JONES
20 SCOTT
20 SMITH
5 rows selected

4.minus

取兩個(gè)集合的差集,A集合中存在,B集合中不存在的數(shù)據(jù)(取A集合中B集合不存在的數(shù)據(jù)) 去重。

示例:

select deptno,ename from emp where deptno in (20,30)
minus
select deptno,ename from emp where deptno in (20,10);
    DEPTNO ENAME
---------- ----------
30 ALLEN
30 BLAKE
30 JAMES
30 MARTIN
30 TURNER
30 WARD
6 rows selected.
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI