ORACLE查詢排序後的前幾條資料(避坑)

2021-09-26 07:22:55 字數 449 閱讀 8537

今天寫乙個頁面,要求是查詢排序後的前五條資料,遇到乙個不大不小的坑,特此記錄下

說明下:sql   server中是用top查詢前幾條資料,oracle沒有top,但是可以用rownum實現。

我寫的語句是:

select   *   from   table_name  t  where   rownum  <= 5   order  by  t.price desc;

發現查詢出來的資料並不是表中**最高的前五條,而是資料庫中前五條記錄排序後的結果

後改為select   *   from   (select   *    from    table_name   t  order  by   t.price desc)  where   rownum <= 5;

得到預期的結果。

兩者的不同就在於 前者先取出五條資料然後進行排序,後者先將表中所有資料排序,再取出前五條。

oracle中排序後查詢前幾條資料

sql server中可以用top關鍵字查詢符合條件的前幾條記錄。select top 10 oracle中沒有top關鍵字,應該怎麼查詢呢?方法如下 1 sql語句 select from select from table a ta order by ta.id where rownum 10 ...

如何查詢oracle表的前幾條記錄

由於專案需要,需要查詢 oracle 表中的前幾條記錄,oralcle 由乙個rownum 可以直接用這個來得到需要的記錄數,但是一開始我用的 sql是 select from table where rownum 你要查的記錄條數,雖然能夠取出前幾條記錄,但是我發現如果要把排序後記錄取前幾條結果就...

Oracle查詢前幾條資料的方法

oracle查詢前幾條資料的方法 在oracle中實現select top n 由於oracle不支援select top 語句,所以在oracle中經常是用order by 跟rownum 的組合來實現select top n的查詢。簡單地說,實現方法如下所示 select 列名1 列名n fro...