人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Postgresql7.4.11を使用してあるソフトを作っているのですが、SQL文で、あるカラムからまだ使用されていないUniqueな値を得る簡単な方法が知りたいです。

たとえば、idというint型もしくはvarchar型のカラムに、1, 2, 3, 4, 8,…と値が入っている時, 5, 6, 7, 9,…といった、まだ使用されていない値を取得したい、ということです。

●質問者: tecra
●カテゴリ:コンピュータ
✍キーワード:SQL カラム ソフト
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● icchan0000
●60ポイント

えっと、確認なのですが、「現在入っている最大の値より小さい値で、レコードに存在しないもの全て」を取得したいってことでしょうか?

そうだとしたら、最大値をmax(column)で取得して、後は1からmax値まで、ループを回すしかないんじゃないかなぁ。。。

URL必須とのことなので↓max関数。。。

http://www.postgresql.jp/document/pg746doc/html/functions-aggreg...


お役に立たなければポイントは不要です?

◎質問者からの返答

全てではなく、どれかひとつでもかまわないのですが・・・


2 ●
●10ポイント

どれか1つということでしたら、以下のSQLで一番小さい使われていない値を求めることができます。

SELECT MIN(id + 1)
FROM sample01
WHERE id +1 NOT IN (SELECT id FROM sample01)
;

id列が主キー(Primary Key)でインデックスが張られていれば、パフォーマンス面でも問題なく動作すると思います。

参考になれば幸いです。

[参考URL]

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ