问题标签 [rownum]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
4344 浏览

oracle - Oracle ROWNUM 伪列

我有一个带有 group by 和 order by 子句的复杂查询,我需要每行返回一个排序的行号 (1...2...(n-1)...n)。使用 ROWNUM (在通过查询的谓词阶段但在查询进行任何排序或聚合之前将值分配给行)给我一个未排序的列表(4...567...123...45 ...)。我不能使用应用程序为每一行计算和分配数字。

0 投票
5 回答
37122 浏览

sql - 在 Oracle 数据库中,ROWNUM 和 ROW_NUMBER 有什么区别?

ROWNUM和 和有什么不一样ROW_NUMBER

0 投票
4 回答
3121 浏览

sql - 子查询中的rownum

我想知道为什么这不起作用:

+ TBL.Rownum给出了一个错误
,为什么?

迎接奥罗

0 投票
4 回答
3073 浏览

oracle10g - Oracle 10G - 从 9i 迁移后使用 rownum 的查询停止工作

我们最近刚刚将我们的数据库从 9i 迁移到 10G(是的..迟到总比没有好,不 - 目前还不能选择迁移到 11g :-))

我的 Oracle 10G DB 的详细信息是:-

自从那次搬家以来,我面临着一个非常奇怪的问题。过去和现在仍然可以在 9i 上正常工作的查询在 10G 上无法正常工作。

我确实搜索了与 rownum 相关的其他 SO 问题,但找不到任何类似的东西。

SQL查询是:-

基本上,21 / 30 是数字,它们是传递给分页查询的记录的索引,在 9i 中,此查询按预期工作并仅返回指定的数据集。

但是在 10G 中,同样的查询根本不起作用——总是返回 0 条记录。

如果我评论查询的rownum相关部分: -

然后我得到了整个结果集,这很棒。但是由于我的意图是使用 rownum 进行分页,所以整个目的都失败了。

有谁知道这个查询停止使用 10G 的任何原因。我尝试查找对 rownum 实现的任何更新,但还没有真正遇到任何有用的东西。

编辑:- 在进行调试时,我遇到了一些对我来说毫无意义的事情。我在下面输入整个查询,因为没有它我无法解释。

请参阅最里面的子查询中 *** 之间标记的行。

  1. 如果我从我的查询中评论这一行,则查询工作正常。

    和 PEM.ENDORSEMENT_STATUS = 'POST'

  2. 如果我从我的查询中评论这一行并且其他所有内容与原始内容保持不变,则查询也可以正常工作

    按 1 ASC 订购

与 rownum 相关的早期观点仍然适用,但单独评论这些行似乎使 rownum 无关紧要,整个查询工作正常(除了现在结果在逻辑上不同的事实)

我很困惑。至少可以说!!!

编辑2:

为上述查询添加执行计划

编辑 3:

与上面完全相同的查询,但如果我删除

子句,然后按预期检索结果。此查询的计划没有 order by 如下

请注意,这两个计划之间唯一真正的区别是,不工作的计划在第 3 步之后有以下两个附加步骤,因为这些步骤在没有 order by 的查询中不存在 - 这工作正常。

正如预期的那样,步骤 5 是完成数据排序的步骤。

似乎第 4 步可能是由于排序而创建的附加视图。

为什么这应该阻止 rownum 逻辑工作是我仍在努力掌握的。

任何帮助表示赞赏!

编辑 4 - 来自 9i 环境的原始查询计划

0 投票
5 回答
4146 浏览

sql - 对 rownum 的 Sql 查询

执行后出现此错误:

为什么它给出这个错误?

0 投票
2 回答
805 浏览

sql - 为什么rownum上的sql查询都给出不同的结果

为什么它给出不同的结果?我想对此有详细的解释。

0 投票
2 回答
154 浏览

sql - 为什么这两个查询之间的性能增益存在差异?

SELECT instmax,
r
FROM
(SELECT instmax,
rownum r
FROM
(SELECT instmax FROM pswlinstmax ORDER BY instmax DESC NULLS LAST
)
WHERE rownum <= 10
)
WHERE r >=6;

输出

替代文字

SELECT instmax,
r
FROM
(SELECT instmax,
rownum r
FROM
(SELECT instmax FROM pswlinstmax ORDER BY instmax DESC NULLS LAST
)
)
WHERE r 介于 6 和 10 之间;

输出

替代文字

两个查询之间真的有明确的性能提升吗?你能澄清一下吗?

0 投票
2 回答
10415 浏览

oracle - 如何根据行本身的数量字段返回多个相同的行?

我正在使用 oracle 从购物应用程序中输出订单项。每个项目都有一个可能大于 1 的数量字段,如果是,我想返回该行 N 次。

这就是我所说的一张桌子

我正在寻找一个会返回的查询

这可能吗?我看到了 SQL Server 2005 的这个答案,我在 oracle 中寻找几乎完全相同的东西。不幸的是,建立一个专用的数字表不是一种选择。

0 投票
8 回答
183788 浏览

postgresql - postgresql中的Rownum

有什么方法可以在 postgresql 中模拟 rownum 吗?

0 投票
2 回答
8317 浏览

sql - 如何在 MS 访问中使用查询仅检索前 n 条记录

我正在寻找类似rownum的东西