Oracle基礎筆記十三

第十三章 SET運算


1.SET 操作符:UNION / UNION ALL INTERSECT MINUS


2.UNION 操作符返回兩個查詢的結果集的並集

SELECT employee_id, job_id

FROM   employees

UNION

SELECT employee_id, job_id

FROM   job_history;


2.1UNION ALL 操作符:返回兩個查詢的結果集的並集。對於兩個結果集的重複部分,不去重。

SELECT employee_id, job_id, department_id

FROM   employees

UNION ALL

SELECT employee_id, job_id, department_id

FROM   job_history

ORDER BY  employee_id;


3.INTERSECT 操作符返回兩個結果集的交集

SELECT employee_id, job_id

FROM   employees

INTERSECT

SELECT employee_id, job_id

FROM   job_history;


4.MINUS操作符:返回兩個結果集的差集

SELECT employee_id,job_id

FROM   employees

MINUS

SELECT employee_id,job_id

FROM   job_history;


5.使用 SET 操作符注意事項

在SELECT 列表中的列名和表達式在數量和數據類型上要相對應

括號可以改變執行的順序

ORDER BY 子句:

只能在語句的最後出現

可以使用第一個查詢中的列名, 別名或相對位置

除 UNION ALL之外,系統會自動將重複的記錄刪除

系統將第一個查詢的列名顯示在輸出中

除 UNION ALL之外,系統自動按照第一個查詢中的第一個列的升序排列 


6.匹配各SELECT 語句舉例

SELECT department_id, TO_NUMBER(null) 

       location, hire_date

FROM   employees

UNION

SELECT department_id, location_id,  TO_DATE(null)

FROM   departments;


SELECT employee_id, job_id,salary

FROM   employees

UNION

SELECT employee_id, job_id,0

FROM   job_history;


使用相對位置排序舉例

COLUMN a_dummy NOPRINT

SELECT 'sing' AS "My dream", 3 a_dummy

FROM dual

UNION

SELECT 'I`d like to teach', 1

FROM dual

UNION 

SELECT 'the world to', 2

FROM dual

ORDER BY 2;



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章