こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

オラクル+SQL Plus

SELECT A FROM AAA WHERE ROWNUM<=5とSQLを実行すると
必ず5つ返ってくるとは限らないみたいで…
テーブル名やフィールド名が分かっている状態で
何万件ものデータベースから指定した個数だけ返ってくるような
SQL文があるのであれば教えてください。
個数さえ合っていれば順番は特に気にしません。
よろしくお願いします。

投稿日時 - 2002-09-18 17:06:57

QNo.361302

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

ymmasayan さんのおっしゃるように上記のSQL であれば、元表に5行以上あれば
5レコード出力されるはずです。
もしも、ROWNUM の指定と出力される件数が合わないようであれば、
Oracle のBug の可能性が高いです。
このようなパターンでは、Optimizer の問題の可能性が高いですが、
Cost Base/Rule Base のどちらを使用されていますか?

可能であれば (Oracle とサポート契約を締結していれば) OISC から
Oracle に問い合わせをするのが、一番確実です。

参考URL:http://support.oracle.co.jp/

投稿日時 - 2002-09-19 16:33:16

ANo.1

ご質問の例では行数さえあれば、5行出ると思いますが。
例えば、その後ろに更にWHERE文がANDされているとかないですか。
もしそうなら、このままではだめみたいです。

>何万件ものデータベースから指定した個数だけ返ってくるような
SQL文があるのであれば教えてください。

この文章から考えると、条件検索してその条件に合致したものから先頭5件を
取り出すということのようですね。
その場合は、合致したもの(副照会)をソート(ORDER BY)して
ROWNUMを振りなおし、改めて主照会で先頭の5個を取り出します。

参考URLの ROWNUMの使い方について を参照ください。
selectの仕方【質問者・scotteさん】[初心者の部屋#12897]

参考URL:http://www.oracle.co.jp/2shin/ora55/18_19.html

投稿日時 - 2002-09-18 17:58:40

あなたにオススメの質問