EXCEPT 演算子 - 差集合を求める -

SQL-92/99   Oracle DB2 SQL Server MySQL PostgreSQL Access

SELECT文1
EXCEPT [ ALL ]
SELECT文2

関連キーワード

 EXCEPT 演算子は、SELECT 文 1 の問い合せ結果と SELECT 文 2 の問い合せ結果の差集合を求めるときに使用します。

-- 【説明】
-- この SQL 文は、「T_13_1」表の問い合せ結果である 6 件のデータから「T_13_1」表の「I2_CODE」列の値が「20」と等しい問い合せ結果である 4 件のデータを除いたデータを取得することになります。

SELECT * FROM T_13_1
 EXCEPT
  SELECT * FROM T_13_1
   WHERE I2_CODE = '20';


SERIALI1_CODEI2_CODEI_COST
203001101102500
203003301309800

 EXCEPT 演算子では、ALL キーワードを指定することで、複数の SELECT 文の問い合せ結果の差集合を求めるとき、重複するデータも含めた差集合を求めることができます。

-- 【説明】

SELECT * FROM T_13_1
 EXCEPT ALL
  SELECT * FROM T_13_1
   WHERE I_COST > 6000;


SERIALI1_CODEI2_CODEI_COST
203001101102500
203004201205500
203005201205600
203006202205600

参考表

T_13_1

SERIALI1_CODEI2_CODEI_COST
203001101102500
203002201206500
203003301309800
203004201205500
203005201205600
203006202205600