我很难将存储过程从 SQL Server 转换为 Oracle,以使我们的产品与之兼容。
我有根据时间戳返回某些表的最新记录的查询:
SQL 服务器:
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
它有效。但这对我来说听起来像是一个可怕的黑客攻击,特别是如果我在所涉及的表中有很多记录。
实现这一目标的最佳方法是什么?