dポイントプレゼントキャンペーン実施中!

SQLで検索結果の出力件数指定はできるのでしょうか?

例)SELECT * FROM SHOHIN ORDER BY SHOHINCD
この様なSQLを発行した場合に検索結果を5件だけ出力する事は可能でしょうか?

・可能な場合具体的な指定方法を教えてください。

・出力件数が可能の場合で、ソート順や検索条件(SHOHINCD>1000等)がない場合は順不同な結果が返ると思えばいいでしょうか?

よろしくお願いいたします。

A 回答 (4件)

>Oracleは抽出結果に自動的に番号(ROWNUM)を採番しますので、


>それを利用すればできます。
>例)SELECT * FROM SHOHIN WHERE ROWNUM <= 5 ORDER BY SHOHINCD

このSQLでは、正しい結果を得られません。
ROWNUMは、ソートをする前にOracleによってふられます。

そのため、ソートした結果の後で、5件ROWNUMで件数を指定する必要があります。

SELECT * FROM
(SELECT * FROM SHOHIN ORDER BY SHOHINCD)
WHERE ROWNUM <= 5 

とする必要があります。

この回答への補足

ありがとう御座います。早速明日会社で試します。早々のレス誠に感謝いたしております。<m(__)m>

補足日時:2003/02/09 18:39
    • good
    • 1
この回答へのお礼

>このSQLでは、正しい結果を得られません。
その通りでした。

>そのため、ソートした結果の後で、5件ROWNUMで件数を指定する必要があります。
このSQLで正しい結果取得ができました。
本当にありがとう御座いました。<m(__)m>

お礼日時:2003/02/10 20:13

#1のものです。

昔なにかで使った記憶で回答したのですが、身近な「アクセス」で「TOP述語」が使えました。
SELECT top 3 [番号], [日付], [名前], [使途], [金額]FROM 小口現金1;
で、自分のテーブルを用いて、クエリでやると、3行結果が出てきました。ご使用の処理系は分かりませんが、何かのご参考になれば。

この回答への補足

度々のHELP誠に感謝致しております。これも明日早速試してみたいと思います。ありがとう御座います。<m(__)m>

補足日時:2003/02/09 22:00
    • good
    • 3
この回答へのお礼

Oracleではエラーになりましたが、SqlServerでは有効みたいです。(試してませんが)
知識が増えました。
ありがとう御座いました。

お礼日時:2003/02/10 20:11

>例)SELECT * FROM SHOHIN ORDER BY SHOHINCD


>この様なSQLを発行した場合に検索結果を5件だけ出力する事は可能でしょうか?
>
>・可能な場合具体的な指定方法を教えてください。
>
Oracleは抽出結果に自動的に番号(ROWNUM)を採番しますので、
それを利用すればできます。
例)SELECT * FROM SHOHIN WHERE ROWNUM <= 5 ORDER BY SHOHINCD

>・出力件数が可能の場合で、ソート順や検索条件(SHOHINCD>1000等)がない場合は順不同な結果が返ると思えばいいでしょうか?

また、ソートを行わない場合は抽出結果の順番は保証されません。

この回答への補足

ありがとう御座います。

補足日時:2003/02/09 18:38
    • good
    • 0
この回答へのお礼

参考になりました。
ありがとう御座いました。<m(__)m>

お礼日時:2003/02/10 20:14

「TOP」が使えませんか。


参考
http://www.users.gr.jp/ml/Archive/sql/4285.asp

この回答への補足

ありがとう御座います。<m(__)m>
早速明日会社で試して見たいと思います。
DBはOracle8.1.7です(DBとVer記入忘れていました。)<m(__)m>

補足日時:2003/02/09 13:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!