我很难将存储过程从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
而且有效。但这对我来说听起来像是一个骇人听闻的骇客,尤其是当我在涉及的表中有很多记录的时候。
实现此目标的最佳方法是什么?