- ベストアンサー
該当するSQL文を教えてください。
該当するSQL文を教えてください。 SQL超初心者です。 指定した条件にマッチする「次のレコード」を取得(または表示)させるための SQL文を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
次のレコード で想像するのは 最新の値と前回値 の様なデータですが、SQLでやる場合は一意なIDがあるテーブルであれば 以下の様なやり方で表示出来ると思います。 逆の考え方であれば、MAX → MIN に置き換えれば良いと思います。 select * from テーブル as A where A.ID = ( select MAX(B.ID) from テーブル as B where B.ID != ( select MAX(C.ID) from テーブル as C ) ) 日時でと言う事であれば (日時が一意である事が前提ですが) IDで記述している部分を日時のフィールドに変更する事で取得可能かと思います。
その他の回答 (3)
- layy
- ベストアンサー率23% (292/1222)
次というからには 並べ替えしていると思います。 例えば 1 2 3 4 5 6 7 で=3が条件で その次が欲しい時 1 2 3 4 5 6 7 # と#が条件一致です。 4以上の先頭ということ で成り立つことあります。 1 2 3 4 5 6 7 で奇数の次が欲しい時 1 2 3 4 5 6 7 # # # # と#が条件一致です。 これも偶数の条件の先頭。 指定する条件の裏返し条件での先頭、でできたらと思います。先頭はTOPを使います。
- yambejp
- ベストアンサー率51% (3827/7415)
ポイントだけ・・・ (1)データにユニークなidを数値でつける (2)数値の大小で順序を判断する (3)空き番があることを加味して、自分よりidが小さい数を数えて、その数に1をたして数が 自分よりidが小さい数と等しいものを抽出する という流れが基本です
- webuser
- ベストアンサー率33% (372/1121)
>指定した条件にマッチする「次のレコード」を取得 「次のレコード」は、DBMSの仕様や、条件やデータ状態によって変わりますので無理です。 「次」の根拠が無いからです。 指定した条件、および指定した並び順に複数マッチするレコードのうち、任意の1レコードを選択した後、その次のレコードを取得する事なら可能です。 カーソルオープン時に条件と並び順を指定し、フェッチでデータを1件取得、もう一度フェッチすれば次のレコードを取得できます。 そういう意味では、無条件でテーブルまるごと対象にカーソルオープンし、 フェッチでデータを1件づつ順に取得し、 条件にマッチしたら、最後にもう一回フェッチして、それで取得したのが次のレコードですが、そんなレコードに何の意味もありません。
お礼
とても助かりました。ありがとうございました。