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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- Oracle 列1と列2の関係性で列3の条件に一致するレコードを抽出したい 1 2022/04/13 07:46
- ネットスーパー 皆さんはネットショップで 10 2022/10/01 13:36
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Visual Basic(VBA) 【ExcelVBA】Powerクエリーでいうピボット解除と同じ処理をVBAで 4 2022/07/06 17:09
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- スピーカー・コンポ・ステレオ レコードの出し入れがし易い内袋のおすすめを教えてください。 レコードの内袋なのですが、商品付属の内袋 4 2022/08/04 20:18
- SQL Server これをSQL文で出来るでしょうか? 1 2023/03/26 02:16
- Oracle Oracleですがsqlで質問です。 サブクエリ内で番号というカラムで昇順の1レコード目を取得したい 3 2023/05/22 10:02
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
テーブルの最後(最新)のレコードを抽出したい
MySQL
-
SELECTで1件のみ取得するには?
Oracle
-
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
-
4
最新から100行のSELECT文
MySQL
-
5
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
6
14桁の日付(YYYYMMDDHHMMSS)を日付(YYYY/MM/DD)に変換できますか?
Oracle
-
7
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
8
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
9
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
-
10
SELECT 文 GROUP での1件目を取得
SQL Server
-
11
【PL/SQL】FROM区に変数を使う方法
Oracle
-
12
SELECTでn行目から最後もしくはn行目以外が取得したい
MySQL
-
13
単一グループのグループ関数ではありません。
Oracle
-
14
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
15
<forEach> 内で供給された items" を反復処理する方法が不明です"
Java
-
16
SQLにて指定日付より前、かつ最新のデータを1件取得したいです。
PostgreSQL
-
17
ラズパイで『’test.service’をstatできません:そのようなファイルやディレクトリはあり
UNIX・Linux
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
単一グループのグループ関数で...
-
【PL/SQL】FROM区に変数を使う方法
-
where句中のtrim関数について
-
アクセスのレポートでレコード...
-
group byの並び順を変えるだけ...
-
SQL*Loader Append
-
トランザクションログを出力せ...
-
BLOB型項目をSQLの検索条件に指...
-
SELECT FOR UPDATE で該当レコ...
-
AccessのSQL文で1件のみヒット...
-
デフォルトでデータが表示され...
-
トリガからプロシージャのコー...
-
引数によってwhere句を切り替え...
-
SQLで条件にヒットしたレコード...
-
大量レコードをTRUNCATEせずに...
-
【SQL】違うフィールド同士の集...
-
抽出データの欠落
-
oracle DB内のデータを増幅す...
-
1レコード全てを改行なしで表...
-
ACCESS レコードの並び順について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
単一グループのグループ関数で...
-
【PL/SQL】FROM区に変数を使う方法
-
AccessのSQL文で1件のみヒット...
-
SELECT FOR UPDATE で該当レコ...
-
where句中のtrim関数について
-
group byの並び順を変えるだけ...
-
アクセスのレポートでレコード...
-
SQLで条件にヒットしたレコード...
-
ORMについて
-
トランザクションログを出力せ...
-
データ
-
SQL*Loader Append
-
「数字で始まらない」ものを抽...
-
引数によってwhere句を切り替え...
-
BLOB型項目をSQLの検索条件に指...
-
osqleditについて
-
ACCESS レコードの並び順について
-
大量レコードをTRUNCATEせずに...
-
【SQL】違うフィールド同士の集...
-
updateで複数行更新したい
おすすめ情報