使用中SELECT TOP 5 * FROM SOMETABLE
にエラーが発生する
ORA-00923: FROM キーワードが予期された場所に見つかりませんでした
Oracle 11g を使用しています。同じことをするために使用することは知ってrownum
いますが、SQL TOP の使用は Oracle ではまったくサポートされていないのではないかと思っていますか? SQL TOP を Oracle で動作させるために何か追加する必要がありますか??
いいえ、OracleはをサポートしていませんTOP
。
ご指摘のとおり、最善のアプローチはを使用することrownum
です。もう1つのオプションは、分析関数ROW_NUMBER
です。
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
SQLTOPはOracleでは機能しません。