Oracle中union/union all/Intersect/Minus用法

來源:互聯網
上載者:User

Union,對兩個結果集進行並集操作,不包括重複行,同時進行預設規則的排序;

Union All,對兩個結果集進行並集操作,包括重複行,不進行排序;

Intersect,對兩個結果集進行交集操作,不包括重複行,同時進行預設規則的排序;

Minus,對兩個結果集進行差操作,不包括重複行,同時進行預設規則的排序。

order by子句必須寫在最後一個結果集裡,並且其定序將改變操作後的排序結果;並且對於Union、Union All、Intersect、Minus都有效。

表頭會用第一個串連塊的欄位。

1.Union

union用法中,兩個select語句的欄位類型匹配,而且欄位個數要相同.

UNION串連的兩個表是同一表,使用UNION會過濾重複行,顯示的是一張表的資料。

下面SQL查詢語句中兩個表完全一樣,所以查詢顯示的是單張表的資訊。

SCOTT@bys1>select deptno,dname as "aa",loc from dept union select deptno,dname,loc from dept;
DEPTNO aa LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

2.Union All

UNION ALL,它的用法和union一樣,只不過union含有distinct的功能,它會把兩張表了重複的記錄去掉,

而union all不會,所以從效率上,union all 會高一點,但在實際中用到的並不是很多.

效率上說,UNION ALL 要比UNION快很多,所以,如果可以確認合并的兩個結果集中不包含重複的資料的話,那麼就使用UNION ALL。
盡量使用union all,因為union需要進行排序,去除重複記錄,效率低。 

下面SQL查詢語句中兩個表完全一樣,所以查詢顯示了兩次表內資訊。

SCOTT@bys1>select deptno,dname,loc as "aa" from dept union allselect deptno,dname,loc as "bb" from dept;
DEPTNO DNAME aa
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

3.Intersect

對兩個結果集進行交集操作,不包括重複行,同時進行預設規則的排序;返回兩個表共同含有的資料,取出交集作為最終的返回結果。

下面SQL查詢語句中兩個表完全一樣,所以查詢顯示的是單張表的資訊。
SCOTT@bys1>select deptno,dname,loc as "aa" from dept intersect select deptno,dname,loc as "bb" from dept;
DEPTNO DNAME aa
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

4.Minus

對兩個結果集進行差操作,不包括重複行,同時進行預設規則的排序。

第一個結果集減去第二個結果集中的內容,所剩餘的內容作為最終的返回結果。

下面SQL查詢語句中兩個表完全一樣,所以查詢顯示無資訊。

SCOTT@bys1>select deptno,dname,loc as "aa" from dept minus select deptno,dname,loc as "bb" from dept;

no rows selected

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.