EXCEPT, MINUS

クエリーの結果から、別のクエリーの結果を差し引きます。

ANSI (一般的な記述)

SELECT query_expression
EXCEPT [ALL]
SELECT query_expression
ORDER BY expression

Oracle

SELECT query_expression
MINUS
SELECT query_expression
ORDER BY expression
※OracleではALLを指定できません。

 

*
下記の2つのテーブルがあるとき…

社員マスタ

社員番号 名前 所属部署コード 役職コード
1 しゃちょさん 100 11
2 部長さん 200 12

 

社員マスタ2

社員番号 名前 所属部署コード 役職コード
2 部長さん 210 12
3 主任さん 220 13

 

*
社員マスタから社員番号, 名前 のカラムをSELECTした結果から、社員マスタ2の社員番号, 名前 のカラムをSELECTしてた結果を差し引きする場合…
(Oracle)

SELECT 社員番号, 名前 FROM 社員マスタ
MINUS
SELECT 社員番号, 名前 FROM 社員マスタ2
ORDER BY 社員番号 DESC
;

(ANSI準拠)

SELECT 社員番号, 名前 FROM 社員マスタ
EXCEPT
SELECT 社員番号, 名前 FROM 社員マスタ2
ORDER BY 社員番号 DESC
;

結果

社員番号 名前
1 しゃちょさん