2

使用中SELECT TOP 5 * FROM SOMETABLEにエラーが発生する

ORA-00923: FROM キーワードが予期された場所に見つかりませんでした

Oracle 11g を使用しています。同じことをするために使用することは知ってrownumいますが、SQL TOP の使用は Oracle ではまったくサポートされていないのではないかと思っていますか? SQL TOP を Oracle で動作させるために何か追加する必要がありますか??

4

4 に答える 4

11

OracleはをサポートしていませんTOP。使用するROWNUM

SELECT * FROM your_table
WHERE ROWNUM <= 5

SQLFiddleの例

于 2012-10-31T14:21:31.213 に答える
2

いいえ、OracleはをサポートしていませんTOP

ご指摘のとおり、最善のアプローチはを使用することrownumです。もう1つのオプションは、分析関数ROW_NUMBERです。

于 2012-10-31T14:21:33.543 に答える
0

rownumキーワード、それはあなたに言われたノーを取得します。レコードの場合、order by句がある場合は句を適用した後にのみそうします。

したがって、SQL サーバー クエリが以下の場合、最近作成された 10 件のレコードが返されます。

Select TOP 10 * from mytable order by created_date desc

しかし、Oracle に合わせて、これを記述すると、10 個のレコード (最新のレコードではない可能性があります) が取得され、降順に並べ替えられますが、これは望んだものではありません。

Select * from mytable where rownum < 10 order by created_date desc

したがって、次のように選択を追加して書くと役立ちます。

SELECT * FROM (Select * from mytable order by created_date desc) where rownum < 10 
于 2016-01-04T04:48:59.547 に答える
-1

SQLTOPはOracleでは機能しません。

于 2012-10-31T14:21:23.717 に答える