2011-01-18 10 views
-1

ORACLE 9iの4番目のレコードを検索します。 WHERE句でROWNUM = 4を比較できますか?ROWNUM IN ORACLE

+5

この質問を入力するよりも、試してみる時間がかかりませんでした。 –

+0

[rownum from salary where rownum = 3;]の可能な複製(http://stackoverflow.com/questions/3457370/select-rownum-from-salary-where-rownum-3) – Thilo

答えて

2

いいえ、ROWNUMはWHERE句が評価された後に割り当てられます。したがって、rownum 1〜3を「スキップ」できません。

さらに、BEFOREソートに割り当てられます。

これは、Oracleにとって最も厄介な「機能」です。彼らは実際にLIMIT/OFFSETを実装する必要があります。

あなたはこのような何かをしようとしない理由

select * from (
     select a.*, rownum rn from (
     select the_data from the_table order by the_order 
    ) a where rownum < 5 
) where rn = 4 
0
SELECT * 
FROM 
(SELECT mt.mydata 
    FROM myTable mt 
    WHERE mt.myId = xxx 
    ORDER BY mt.myDate DESC 
) 
WHERE ROWNUM <= 10; 
0

ような何かをする必要があります:)

select * from (select rownum sn, tn.* from tablename tn) where sn=4 

ここにテーブル名があなたのテーブルの名前で、TNがありますエイリアスが割り当てられます。