前回、連続した番号をもったビューの作り方をまとめた。
今回は、これを使って「特定の数列の中から欠番を求める」というのをまとめる。
以下のように、数列の中で一部歯抜けになっているmissing_numというテーブルがあるとする。
num |
---|
0 |
1 |
2 |
4 |
5 |
6 |
9 |
この中に含まれていない番号を抜き出してくる場合には、きちんと連番になっている数列と比較して含まれていないものを取り出せば良い。
これには、EXCEPTを使った方法とNOT INを使った方法があるが、どちらも結果はおなじになる。
select seq from Sequence where seq between 0 and 9 EXCEPT select num from missing_num; select seq from Sequence where seq between 0 and 9 and seq not in (select num from missing_num);
num |
---|
3 |
7 |
8 |
達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)
posted with amazlet at 17.07.10