[pgsql-jp: 26506] Re: 空きIDの複数検索
WADA Hiroyuki
wada @ komine-ag.co.jp
2002年 6月 27日 (木) 15:47:04 JST
和田です。
"K.Nakamura" wrote:
> データが
> id nm
> -----------------
> 1 aaa
> 4 bbb
> 5 ccc
> 8 ddd
> 10 eee
> と、あったときに、1〜10のID中から空いている5個のID(2,3,6,7,9)を
> 一度に取得できるSQLを書きたいのです
5個だとできそうに思えるかもしれませんが、50億個になったりもする
わけで、SQLで一度には無理な気がします。
このくらいで妥協しては?
select a.id+1 as low, min(b.id)-1 as high
from abc as a,abc as b
where a.id < b.id
group by a.id
having a.id+1 < min(b.id)
low | high
-----+------
2 | 3
6 | 7
9 | 9
(3 rows)
pgsql-jp メーリングリストの案内