
No.5ベストアンサー
- 回答日時:
SELECT *
FROM
(SELECT "商品CD", ...
FROM table1
WHERE "商品CD" >= 1111
ORDER BY "商品CD")
WHERE ROWNUM <= 10
ROWNUMが振られるのはORDER BYの前です。大小の比較ができるのは数値のみなので、商品CDが文字列の場合、他の方法を探す必要があります。
Oracle9i SQLリファレンス P2-86 参照
~以下引用~
同じ問合せでROWNUM にORDER BY 句が続く場合、ORDER BY 句によって行が再び順序付けられます。結果は、行がアクセスされる方法によって異なります。たとえば、ORDER BY 句の指定によってOracle が索引を使用してデータにアクセスする場合、索引なしの場合とは異なる順序で行が取り出されることがあります。そのため、後続の文には前述の例と同じ効果はありません。
SELECT * FROM employees WHERE ROWNUM < 11 ORDER BY last_name;
ORDER BY 句を副問合せに埋め込んでROWNUM 条件をトップレベル問合せに置いた場合、行の順序付けの後でROWNUM 条件を強制的に適用させることができます。たとえば、次の問合せは、小さい順から10 個の従業員数を戻します。これは、上位N 番までの問合せと呼ばれることがあります。
SELECT * FROM
(SELECT * FROM employees ORDER BY employee_id)
WHERE ROWNUM < 11;
前述の例では、ROWNUM 値はトップレベルのSELECT 文の値です。これらの値は、副問合せ内のemployee_id によって行が順序付けられた後で生成されます。
No.4
- 回答日時:
OracleだとROWNUMを利用するしかないかな????
SELECT Code, Name FROM Item
WHERE Code >= 1111
AND ROWNUM <= 10
ORDER BY Code
SQL ServerだとTOP関数が利用できるんですけどね。

No.3
- 回答日時:
Oracleですよね?
#1の方が書かれてるTop句は使えるのかなぁ・・・?
こんな感じでいかがでしょう?
select AA,BB
from (select AA,BB from test where AA >= '1113')
where rownum <=10
No.2
- 回答日時:
データベースの中には「順番」は“ありません”ので、「ピンポイントでヒットしたものより後ろ」という抽出はできません。
SELECTで取り出せる順番は、一定しているようですが、内部的なインデックスが変わると、変わります。
商品コードが数値であるという前提で、指定した数値よりも商品コードが大きいレコードから、商品コードの昇順にならべて、先頭から10件取り出す、ということはできます。←過去、いたるところで質問されています
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
単一グループのグループ関数で...
-
【PL/SQL】FROM区に変数を使う方法
-
updateで複数行更新したい
-
AccessのSQL文で1件のみヒット...
-
データ
-
osqleditについて
-
oracle DB内のデータを増幅す...
-
SELECT FOR UPDATE で該当レコ...
-
where句中のtrim関数について
-
デフォルトでデータが表示され...
-
アクセスのレポートでレコード...
-
PL/SQL内の共通関数の引数にフ...
-
Oracle10gからkeySQLで集計データ
-
Oracleですがsqlで質問です。 ...
-
phpmyadminでワイルドカードを...
-
ファイルメーカープロで実用的...
-
トランザクションログを出力せ...
-
ACCESS2007のエクスポート上限
-
小規模なデータベース
-
group byの並び順を変えるだけ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
単一グループのグループ関数で...
-
SELECT FOR UPDATE で該当レコ...
-
【PL/SQL】FROM区に変数を使う方法
-
where句中のtrim関数について
-
データ
-
SQL*Loader Append
-
AccessのSQL文で1件のみヒット...
-
引数によってwhere句を切り替え...
-
トランザクションログを出力せ...
-
updateで複数行更新したい
-
アクセスのレポートでレコード...
-
group byの並び順を変えるだけ...
-
「数字で始まらない」ものを抽...
-
osqleditについて
-
SQLで条件にヒットしたレコード...
-
デフォルトでデータが表示され...
-
BLOB型項目をSQLの検索条件に指...
-
1レコード全てを改行なしで表...
-
トリガからプロシージャのコー...
-
PL/SQLでフェッチでNULLの項目...
おすすめ情報