oracle中的集合操作符

來源:互聯網
上載者:User

oracle中有一類操作符是對集合進行操作的,我們稱之為集合操作符(set operator),我們在前面已經分別介紹了每個集合操作符,這裡簡單總結一下,oracle中的集合操作符號主要有:

  1. union(all) 是用來將多個select語句的結果集合進行合并處理。其中union會壓縮各個結果集中的重複資料,而union all則不會。
  2. intersect 是用來求兩個集合的交集。
  3. minus是用來從一個結果集中去除另一個集合中包含的部分。

對與各個集合操作符, 需要注意的地方的如下:

  1. 除了union all之外的所有集合操作符號都會進行預設排序和去除重複行,這需要佔用一定的資源,只有union all回將資料以原始的方式呈現出來。所以在對oracle中進行效能最佳化時盡量使用union all 而不是 union。
  2. 對於每一個查詢中,必須要具有相同的列的數目和列的類型,但沒有必要使列名相同。如果類型不一樣,可以使用類型轉換函式來轉換。注意這裡oracle不會進行隱式轉換,必須進行手動轉換,如果列的個數不一樣,可以使用替代列的方式來充當。

    例如:
    select ename,sal from emp where sal > 2000
    union all
    select to_char(empno),0 from emp where sal >3500;
    這裡我們使用了類型轉換函式來to_char將empno轉由數值型換為字元型,並給出了一個填充列0,來湊足和前一個查詢的相同的列數。

  3. 可以使用order by 來進行手動的排序,但只能出現在最後一個查詢的後面。而且order by 使用到的列只能使用第一個查詢的列名或者別名,或者使用列的計數器。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.