「2つのクエリ結果の差分を確認したい、、」
本記事を見に来ていただいた方は、2つのクエリ結果の差分確認でお悩みではないでしょうか?
この問題を解決できるのが、EXCEPT句になります。
本記事ではEXCEPT句の活用について解説いたします!
EXCEPTについてはじめに
SQLのEXCEPTは、2つのクエリの結果セットを比較し、一方のクエリの結果セットにあってもう一方のクエリの結果セットにはない行を抽出します。
クエリの修正を行い、BeforeとAfterのクエリ結果差分を確認して修正が意図したものになっているかの確認などに使用できます。
本記事ではそちらについて解説いたします。この機会にマスターいただければと思います!
EXCEPT使用方法と注意点
EXCEPTの使用方法
以下は基本構文となります。
SELECT column1, column2 FROM table1EXCEPTSELECT column1, column2 FROM table2
このクエリは、table1から選択された結果セットからtable2から選択された結果セットを差し引いた結果を返します。
つまり、table1にあってtable2にはない行が結果として返されます。
EXCEPTを使用する際に注意するポイント
- 2つのクエリの結果セットは同じ列数と同じデータ型を持っている必要があります。
EXCEPTはデータベースシステムによってはサポートされていないことがあるので、データベース製品によっては代替手段を使用する必要があります(例: OracleデータベースではMINUSを使用)。
EXCEPTを使うことで、データベース内での行の差分を効果的に取得できます。

修正後のクエリのSUMがあっているかを一括で確認したいときなどにも有用かと思います!
補足)EXCEPTの代替になるMINUSについて
Oracleデータベースでは、MINUSがEXCEPTに相当します。以下はその例です。
SELECT column1, column2 FROM table1
MINUS
SELECT column1, column2 FROM table2
EXCEPTと同様に、table1から選択された結果セットからtable2から選択された結果セットを差し引いた結果を返します。

ここまで読んでいただきありがとうございます。
SQLでは、EXCEPTに限らず様々なケースで疑問を感じるかと思います。
「このようなケースの場合はどのように記述したらよいか、、」
「データサイエンティストになるにはどのように効率的に学習していったらよいか?」
など自己学習に不安がありましたら、以下のスクールのご活用もご検討ください!
SQL参考文献
SQL学び始めの時はこちらの本を参考にしていました。
DBやテーブルの構造から、よく使う関数などがまとめられています。基礎を身につけたい方におススメかと思います。
SQL文法関連記事
そのほか、SQL関連記事をこちらにまとめておりますのでご参考ください。
> Coffee Tech Blog SQL関連記事

もしIT業界への転職でお困りでしたら、下記サービスのご活用をご検討ください!
私は転職の際にGeeklyを活用させて頂き、ご縁を頂くことができました。
EXCEPTについてまとめ
以上が差分を抽出するEXCEPTについてです。
2つのクエリの結果セットを比較し、一方のクエリの結果セットにあってもう一方のクエリの結果セットにはない行を抽出できます。
クエリを修正し、修正前後の結果の差分を比較するときなどに有用になると思います!
参考になれば幸いです☕




コメント