• ベストアンサー

DBに'no'というint型のフィールドがあってレコードは歯抜けになっ

DBに'no'というint型のフィールドがあってレコードは歯抜けになっています。 このとき、一番小さい数字の「4」を取得したい場合、どのような方法がよいのでしょうか? レコード数から、ひとつひとつ見ていくのは余りに非効率だと思いましたが、よい案が浮か びません。アドバイスを頂けないでしょうか。 no ID 1 aaa 2 bbb 3 ccc 10 abc 11 efg

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんばんは。 効率的かどうかは知らんが・・・、 単純に4が欲しいだけなら、 SELECT MIN(no + 1) AS min_no FROM テーブル a WHERE NOT EXISTS(SELECT no FROM テーブル b WHERE a.no + 1 = b.no)

GpH2
質問者

お礼

taka451213さん お世話になります。 アドバイスいただいたものを実際のプログラムに入れ、欲しい結果を得ることができました。 ただ、自分自身がなんとなく理解できた…というレベルで、しっかり・はっきり理解ができていません。 これから、内容を確認していきます。 本当にありがとうございました。

関連するQ&A