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