我想在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