LoginSignup
2
1

More than 3 years have passed since last update.

【Oracle】2つのSQLの実行結果の差分を抽出する時に使っている関数

Posted at

障害対応で原因調査のため、問題のSQLとこっちで予想したSQLを投げて、想定外のデータを確認する時に使う関数をご紹介します。

差分を抽出SQL

MINUS

SELECT test_col FROM test1_tbl -- (1)
MINUS
SELECT test_col FROM test2_tbl -- (2)

上記SQLを投げると、(1)の 実行結果から、(2)の実行結果を引きます。
で、残った結果だけが表示されます。

(1)の実行結果
test_col
1
2
3
(2)の実行結果
test_col
1
2

の場合に、MINUS句を使うと、「3」だけ抽出がされます。

test_col
3

(1)の結果から、(2)の結果を引く(MINUS)した結果となります。

(1)と(2)を逆に書いた場合

SELECT test_col FROM test2_tbl -- (2)
MINUS
SELECT test_col FROM test1_tbl -- (1)

(2)の結果は、(1)が全て網羅しているので、
結果は、何も表示されません。

test_col

なので、2つのSQLの実行結果が同一か?を調べたりする時にも使えます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1