Web Artisan Blog - ウェブ アルチザン ブログ

SQL:EXCEPT,MINUS(集合演算子 差集合)について

SQL (37 items)

2004年12月10日

複数のSELECT文を繋げて1つの命令として実行するにはUNIONとかわらないのですが、
EXCEPT,MINUSの場合は差集合を計算します

2つのSELECT文で取得する項目数、及びそれぞれの型をあわしとく必要があるのはUNIONと変わりません。

EXCEPT演算子はPostgreSQL、DB2等で使用できます
MINUS演算子はOracleで使用できます





TESTTABLE1のITEM1にはデータとして1,2,3とした行を持っており、
TESTTABLE2のITEM1にはデータとして2,4,6とした行を持っている場合

SELECT ITEM1 FROM TESTTABLE1
EXCEPT
SELECT ITEM1 FROM TESTTABLE2

結果
1,3を取得


UNIONの場合では、SELECTの順番を変えても結果が同じでしたが、EXCEPT,MINUSの場合は、順番によって結果が異なります



TESTTABLE1のITEM1にはデータとして1,2,3とした行を持っており、
TESTTABLE2のITEM1にはデータとして2,4,6とした行を持っている場合

SELECT ITEM1 FROM TESTTABLE2
EXCEPT
SELECT ITEM1 FROM TESTTABLE1

結果
4,6を取得



EXCEPT演算子の場合にはALLが使用できますが、MINUS演算子の場合にはALLは使用できません

【2004年12月27日 追記 by ossi】
このEXCEPT、MINUSは、
2つのテーブルの一方にのみ(だけ)存在する
ようなデータを取得したい場合に使いますね。
前の記事 次の記事

Comments

コメントは、まだ書かれていません

Add Comments

Trackback

トラックバックはありません

Trackback URL

http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=373