首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何正确使用Oracle ORDER BY和ROWNUM?

如何正确使用Oracle ORDER BY和ROWNUM?
EN

Stack Overflow用户
提问于 2013-02-26 22:39:43
回答 5查看 315K关注 0票数 139

我很难将存储过程从SQL Server转换到Oracle,以便让我们的产品与之兼容。

我有基于时间戳返回某些表的最新记录的查询:

SQL Server:

SELECT TOP 1 *
FROM RACEWAY_INPUT_LABO
ORDER BY t_stamp DESC

将返回最新记录的=>

但是甲骨文:

SELECT *
FROM raceway_input_labo 
WHERE  rownum <= 1
ORDER BY t_stamp DESC

无论ORDER BY语句是什么,它都会返回最旧的记录(可能取决于索引)!

我以这种方式封装Oracle查询,以满足我的需求:

SELECT * 
FROM 
    (SELECT *
     FROM raceway_input_labo 
     ORDER BY t_stamp DESC)
WHERE  rownum <= 1

而且它是有效的。但对我来说,这听起来像是一个可怕的黑客攻击,特别是当我在涉及的表中有很多记录的时候。

实现这一目标的最佳方法是什么?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15091849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档