【发布时间】:2022-10-12 21:40:39
【问题描述】:
我有一个看起来相当简单的 CTE 查询:
with cte1 as
(
Select row_number () over (
order by id1 desc
)rn,
T.*
from schema1.table1 T
)
select * from cte1
WHERE (rn < 11)
ORDER BY rn, id1 desc
;
但是,使用“TOAD”数据库工具执行时,它会给出不同的结果。
如果我使用执行按钮(“播放”),它会给出我认为正确的结果,包括我最近插入.
如果我使用“作为脚本执行”按钮,它会给出不同的结果,省略最近插入排。
出于安全原因,我更改了架构名称、表名和列名等详细信息。另外,我无法提供使用的实际数据。
根据查询的运行方式,是否有正当的理由为什么会得到不同的结果?
对我来说,这非常令人不安,我会发现它是一个“错误”,而不是一个“功能”。
注意:根据接受的答案,问题出在(未显示的)插入脚本中[未提交插入],不是使用 CTE 代码或使用 TOAD。
【问题讨论】: