SQL小手先の技 1000件以上のin句(Oracle)その5

oracleのin句の1000件問題の続きです。
結構1000件問題の回避策って出てくるものですね。
ちょっとびっくりしてます。
どこかでまとめます。

今度はEXISTS句を使う回避策です。

こんな感じ。

EXISTS句にする前
select * from テーブル名
where 検索対象カラム in (select 検索対象カラム from 別テーブル);

EXISTS句にした後
select * from テーブル名 a
where EXISTS
(select 1 from 別テーブル b where a.検索対象カラム = b.検索対象カラム);

 

このほうが性能も出そうですね。

 

理屈は抜きで!