我想在oracle中做一個選擇返回300行或多或少的行,但我只想要12個最後的註冊表。下面是該查詢:選擇最後12行oracle
(SELECT *
FROM series
ORDER BY odata DESC) estatisticas
WHERE ponteiro = 50 AND lotus = 30
我想在oracle中做一個選擇返回300行或多或少的行,但我只想要12個最後的註冊表。下面是該查詢:選擇最後12行oracle
(SELECT *
FROM series
ORDER BY odata DESC) estatisticas
WHERE ponteiro = 50 AND lotus = 30
線沿線的東西:
select * from
(select estatisticas, rownum rn
(SELECT *
FROM series
ORDER BY odata DESC) estatisticas
WHERE ponteiro = 50 AND lotus = 30
order by odata asc) where rownum <=12
編輯: 更新它爲您查詢,您希望將其排序的內部查詢的對面,你的情況上升,因此您可以獲得最後的12
Tnx很多人,它的作品! – 2012-08-08 14:19:20
構建查詢的結果集時,Oracle RDBMS使用名爲rownum的僞列。結果中的每一行按上升次序編號,從0開始,您可以按照如下方式評價條件:
select job_name from dba_scheduler_jobs where rownum < 10;
這將返回前10行找到。
請務必記住,在從數據庫中提取記錄之後但在查詢中的子句順序之前對rownum進行計算。
所以,你的查詢應如下所示:
SELECT * FROM
((SELECT * FROM series
ORDER BY odata DESC) estatisticas
WHERE ponteiro = 50 AND lotus = 30 [ASC/DESC])
WHERE rownum < 12;
你應該通過條款中的順序上升或下降,這取決於你想獲得哪些行。
哪個Oracle版本? – 2012-08-07 15:11:34
@Gladnick:[This](http://stackoverflow.com/revisions/11848905/3)不是一個非常好的建議編輯。代碼格式只能用於代碼。請在進行更多建議編輯之前瞭解如何正確使用代碼格式。我們不需要更多的華麗。謝謝。 – 2012-08-07 16:03:17