一般在SQL Server或是MySQL中都有top的指令讓使用者挑出前n筆資料
像是這樣
select top 10 * from test
表示從test這個table挑出前十筆資料
連AS400都有這個功能top這個功能沒想到Oracle SQL居然沒有?
不過這也不是什麼問題當然還是有解決方式
在Oracle SQL要這樣寫
select * from test where rownum<=10這樣會列出最前面的十筆 如果需要排序後的結果再取前十筆要這樣寫 例如要以id的欄位來排序
select * from (select * from test order by id desc) where rownum<=10
因為rownum在Oracle SQL執行的順序會早於 order by或group by
所以要以排序完的結果再取前十筆才會正確顯示
沒有留言:
張貼留言