问题标签 [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 - 如何正确使用 Oracle ORDER BY 和 ROWNUM?
我很难将存储过程从 SQL Server 转换为 Oracle,以使我们的产品与之兼容。
我有根据时间戳返回某些表的最新记录的查询:
SQL 服务器:
=> 这将返回我最近的记录
但是甲骨文:
=>这将返回我最旧的记录(可能取决于索引),不管ORDER BY
语句!
我以这种方式封装了 Oracle 查询以满足我的要求:
它有效。但这对我来说听起来像是一个可怕的黑客攻击,特别是如果我在所涉及的表中有很多记录。
实现这一目标的最佳方法是什么?
sorting - 如何在更改另一个列排序顺序时保持 rownum 排序顺序?
Oracle11g
无论列的排序顺序如何,我都希望 rownum 按顺序出现(从最小到最大)。我可以通过通过子选择发送查询来实现这一点,如本Query所示。
问题:有没有其他方法可以让 rownum 排序独立于“order by”子句?
如果我不进行子选择,那么我的 rownum 将按列排序,如下所示:
sql - 为什么在使用 dbms_random.value 函数时需要在此 Oracle SQL 查询中包含 rownum 字段?
我正在从一些表中抽取一个随机样本,并注意到根据我编写查询的方式,它不起作用。显然,我没有使用 all_tab_columns,我只是提供了一个适用于 vanilla 实例 (9.2.0.8) 的示例。
为什么这行得通?
但这不会返回任何结果。
查询中的 rownum < 10000 有什么作用?
编辑:澄清什么不起作用。
编辑:添加版本 9.2.0.8
sql - 在 Oracle 上使用 rownum 更新具有递增 ID 的表是否安全?
与MySql类似,我想用增量值更新(填充)一个空列——使用Oracle。即之后
我希望该ID
列的所有记录都接收唯一值。之后,我将启用Not Null和唯一约束以使其成为主键。
我很快想出了
但我对此有不好的预感。它在我的测试中按预期工作,但一个例子不能证明:-)
rownum
在 - 语句中以这种方式使用是否安全update
?
oracle - 包装在分页选择语句和 ROWNUM 中的子查询的行为
我在少数情况下使用了以下“wapper”来实现分页,并且通常将其称为“标准分页选择”。因此,要对任何 select 语句的结果进行分页,只需将 select 语句包装在“标准分页选择”中即可。
我的问题是关于分页位的行为和 ROWNUM 周围的魔法。据我了解,子查询不会每次都选择完整的结果集,而是在寻找确认或其他方式?
以下是对上面显示的分页行为的正确描述,例如,如果页面大小为 50:
选择:
- 第 1 页(例如 0-50)子查询选择 0-50 行
- 第 2 页(例如 51-100)子查询选择 0-100 行(外部查询然后将其限制为 50-100)
- 第 3 页(例如 101-150)子查询选择 0-150 行(外部查询将其限制为 101-150)
- 第 4 页(例如 151-200)子查询选择 0-200 行(外部查询然后将其限制为 151-200)
- 第 5 页(例如 201-250)子查询选择 0-250 行(外部查询然后将其限制为 201-250)
...等等,你可以看到模式。
您进入“页面”越远,子查询要做的工作就越多。这个对吗?如果是这样,ROWNUM 如何做到这一点?
提前致谢。并反馈赞赏
sql - Oracle SQL - 使用下一条记录的内容更新数据库字段
我正在尝试匿名化客户表的“名称”字段。我想用下一条记录中客户的名称替换每条记录的“名称”。(我知道:这不是真正的匿名,但在那之后'name'和'customerId'将不匹配。这对我的目的来说已经足够了)
我试过这个,但我得到一个 ORA-01747 错误。
怎么了?如何使用表中下一个“名称”字段的内容更新每个“名称”字段?
oracle - Oracle 10g 从表中的一组行中检索特定行的行号
我有一个USER_ROLES
在 Oracle 10g 中命名的表,如下所示。
USER_ID
表的外键在哪里USER_TABLE
。我需要从与特定用户()关联的一组行中知道特定行的行号USER_ID
(而不是基于此表中的所有行)。
以下 SQLUSER_ROLE_ID
基于此表中的所有行检索给定的行号(在本例中为 28)。
在这种情况下,它显示 3。
但我需要从仅与特定用户关联的一组行中检索行号。为此,如果我尝试以下 SQL,
在这种情况下,我修改了WHERE
从
至
它给出了以下错误。
那么,在这种情况下,仅从与特定用户关联的那些行中获取行号的方法是什么?
sql - oracle查询中的rownum问题
我正在尝试运行此查询,但它返回零行。任何线索为什么?
但是,如果我在没有 ROWNUM 子句的情况下运行上述查询,它会找到记录:
我很困惑为什么第一个查询不起作用。
ms-access-2007 - 将行从一个表插入到另一个表中,并在 MS Access 数据库中增加 PK 列值
我们有两个表,table1(id int,name nvarchar(50)) 和 table2(id int,name nvarchar(50))。对于这两个表,id 都是主键。我想将行从 table2 移动到 table1,PK 值递增,即我希望 table1 的 id=max(id)+1 用于所有行复制。我发现这个查询像这样用于 sql server
但是 ROW_NUMBER() 不适用于 Acces 数据库。我不想使用内置的自动增量属性,因为我想删除一行然后在中间插入行等,内置的自动增量属性会对操作造成一些限制。我如何在 MS 访问中做同样的事情?
oracle - 在子查询中使用 rownum
在算法中,用户通过查询,例如:
查询返回以下内容:
该算法需要选择属性的计数(o_orderdate, o_orderpriority
在上面的示例中),因此它将查询重写为:
此查询返回以下内容:
然而,预期的结果是:
知道如何重写解析阶段或用户如何通过语法不同的查询来接收上述结果吗?