问题标签 [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.
sql - SQL ROWNUM如何返回特定范围之间的行
如何返回特定范围的ROWNUM
值?
我正在尝试以下操作:
这仅返回与<
运算符匹配的行。
mysql - MySql:如何将 rownumber 与 join Query 语句一起使用?
我有一个 MySQL 语句,它连接 2 个表并以字段“touch”的 Desc 顺序显示结果。这是我的 SQL 语句
这给了我这样的结果
结果是完美的,它基于Touch字段的降序。现在的问题是rownum没有按顺序排列。那么如何修改 mySQL 语句,以便我可以在不更改 Touch 字段的 DESC 顺序的情况下按顺序获取 rownum。
sql - Oracle rownum function
How I can get rownum in oracle over order by name? i.e In SQL I have a query
How will it be in Oracle?
oracle - 其中 rownum=1 查询在 Oracle 中花费时间
我正在尝试执行类似的查询
这个查询基本上是为了获取表的列名。表中有超过一百万条记录。当我提出上述条件时,它需要花费很多时间来获取第一行。是否有任何替代方法来获取第一行。
oracle - 选择没有 ROWNUM 的前 N 行?
我希望你能帮我做作业:)
我们需要构建一个查询,输出前 N 个薪酬最高的员工。
我的版本运行良好。
比如前三名:
请注意,这将输出前 3 名且薪水相同的员工。
1:迈克,4080
2:史蒂夫,2800
2:苏珊,2800
2:杰克,2800
3:克洛伊,1400
但是现在我们的老师不允许我们使用ROWNUM
。
我四处寻找,没有发现任何有用的东西。
感谢 Justin Caves 的提示,我的第二个解决方案。
首先我尝试了这个:
错误消息是:“myorder:无效标识符”
多亏了 DCookie,它现在很清楚:
“[...] 在评估 where 子句之后应用分析,这就是为什么您会收到 myorder 是无效标识符的错误。”
包装一个 SELECT 解决了这个问题:
我的老师再次罢工,不允许这种奇异的分析功能。
@Justin Caves 的第三个解决方案。
“如果分析函数也被禁止,我可以想象的另一种选择——你永远不会在实践中真正写出的选择,会是这样的”
sql - 两个查询的联合与第一个查询结果集在 Oracle 中获得前十个 rownums
我想要两个查询的联合,第一个查询结果集在 Oracle 中获得前十个 rownums。示例:如果第一个查询有 10 行并且最大 rownum 为 10。我希望第二个查询 rownum 在联合结果中从 11 开始。
select - HQL 中的 rownum 和别名
需要帮忙...
如何将此 SQL 查询转换为 HQL:
它应该返回 3。
谢谢。
sql - Oracle 中分页查询的速度
这对我来说是一个永无止境的话题,我想知道我是否可能忽略了一些东西。本质上,我在应用程序中使用两种类型的 SQL 语句:
- 具有“回退”限制的常规查询
- 排序和分页查询
现在,我们正在讨论对具有数百万条记录的表的一些查询,并与另外 5 个具有数百万条记录的表相连接。显然,我们几乎不想获取所有这些,这就是为什么我们有上述两种方法来限制用户查询。
案例1非常简单。我们只是添加了一个额外的ROWNUM
过滤器:
这是相当快的,因为 Oracle 的 CBO 会在其执行计划中考虑这个过滤器,并且可能会应用一个FIRST_ROWS
操作(类似于/*+FIRST_ROWS*/
提示强制执行的操作。
但是,情况 2对 Oracle 来说有点棘手,因为没有LIMIT ... OFFSET
其他 RDBMS 中的子句。因此,我们将“业务”查询嵌套在技术包装器中,如下所示:
请注意,TOTAL_ROWS
即使没有获取所有数据,该字段的计算也是为了知道我们将拥有多少页。现在这个分页查询通常是相当令人满意的。但是时不时地(正如我所说,在查询 5M+ 记录时,可能包括非索引搜索),这会运行 2-3 分钟。
编辑:请注意,潜在的瓶颈不是那么容易规避的,因为必须在分页之前应用排序!
我想知道,是最先进的 模拟LIMIT ... OFFSET
,包括TOTAL_ROWS
在 Oracle 中,还是有更好的解决方案,在设计上会更快,例如通过使用ROW_NUMBER()
窗口函数而不是ROWNUM
伪列?
sql - Oracle:使用 ROWNUM 和 ORDER BY 子句更新表列
我想用一个正在运行的整数填充一个表列,所以我正在考虑使用 ROWNUM。但是,我需要根据其他列的顺序来填充它,例如ORDER BY column1, column2
. 不幸的是,这是不可能的,因为 Oracle 不接受以下声明:
也不是以下语句(尝试使用 WITH 子句):
那么如何使用 SQL 语句而不使用 PL/SQL 中的游标迭代方法呢?
oracle - 连接条件中的 Rownum
最近我修复了一些错误:连接条件中有rownum。
像这样:在 t1.id=t2.id 和 rownum<2 上左连接 t1。因此,无论“左连接”如何,它都应该只返回一行。
当我进一步研究这一点时,我意识到我不明白 Oracle 如何在“左连接”条件下评估 rownum。让我们创建两个示例表:主表和明细表。
然后我们有这个查询:
结果集是可预测的:我们有来自主表的所有行和来自明细表的 3 行匹配这个条件 d.ref_master_id=t.id。
然后我将“rownum = 1”添加到连接条件中,结果是一样的
最有趣的是我设置了“rownum<-666”,又得到了同样的结果!
由于结果集的原因,我们可以说对于明细表中的 3 行,此条件被评估为“真”。但如果我使用“内部连接”,一切都会按预期进行。
此查询不返回任何行,因为我无法想象 rownum 小于 -666 :-)
此外,如果我使用 oracle 语法进行外连接,使用“(+)”也一切顺利。
此查询也不返回任何行。
谁能告诉我,我对外部联接和 rownum 有什么误解?