[pgsql-jp: 26513] Re: 空きID の複数検索
Miyata Tomoki
miyata @ wave.plala.or.jp
2002年 6月 27日 (木) 22:11:37 JST
宮田と申します。
K.Nakamura wrote:
> 以下のようなテーブル構造で
> create table abc(
> id integer,
> nm text
> );
>
> データが
> id nm
> -----------------
> 1 aaa
> 4 bbb
> 5 ccc
> 8 ddd
> 10 eee
> と、あったときに、1〜10のID中から空いている5個のID(2,3,6,7,9)を
> 一度に取得できるSQLを書きたいのですが、I-Netや書籍をあさっても
> 書けません。
> どなたかよろしくご教授お願いいたします。
別のテーブルを用意する方法はどうでしょう?
一手間増えますが、難しいことをしなくてすみます。
SELECT * FROM abc;
id | nm
----+-----
1 | aaa
4 | bbb
5 | ccc
8 | ddd
10 | eee
(5 rows)
CREATE TABLE num(id integer);
INSERT INTO num VALUES (1);
INSERT INTO num VALUES (2);
INSERT INTO num VALUES (3);
INSERT INTO num VALUES (4);
(10まで入れる)
SELECT * from num;
id
----
1
2
3
4
5
6
7
8
9
10
(10 rows)
SELECT * FROM num t1 WHERE NOT EXISTS ( SELECT * FROM abc t2 WHERE t1.id = t2.id);
id
----
2
3
6
7
9
(5 rows)
----
Miyata Tomoki
miyata @ wave.plala.or.jp
pgsql-jp メーリングリストの案内