SQL ServerのMinus、Except
OracleのMINUS演算子がSQL Serverには存在しない、代わりにEXCEPTを使って似た様な処理が可能だ。
EXCEPT:左のクエリにあって右のクエリにない個別の値を返す。
結果はMINUSと同じになる。(違うケースあり)
insert into TBL1 values ('1'); insert into TBL1 values ('2'); insert into TBL1 values ('3'); insert into TBL2 values ('1'); insert into TBL2 values ('3'); select * from TBL1 EXCEPT select * from TBL2 >結果 2
複数の場合は一致するすべての値を除外する。
MINUSとは違う部分で有るだけ排除ではなく、一致するものはすべて排除した結果を返す。
insert into TBL1 values ('1'); insert into TBL1 values ('1'); insert into TBL1 values ('2'); insert into TBL2 values ('1'); insert into TBL2 values ('3'); select * from TBL1 EXCEPT select * from TBL2 >結果 2
- TBL1に複数ぞんざいする"1"の値がすべて排除される。