问题标签 [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 投票
2 回答
107 浏览

sql-server - 需要将Oracle转换为Mssql

我对mssql有疑问。我需要将上面的 oracle 查询迁移到 mssql 中。我正在苦苦挣扎ROWNUM

0 投票
2 回答
2782 浏览

sql - Convert rownum() from db2 to Oracle

Good day,

I would like to change some program code (mostly on SQL code) because the database already change from DB2 to Oracle.

Here is 1 example that I successful changed but I am not really understand about it, and I cant find it from google.

The following is the original SQL Query code (using DB2) :

#xA;

Here is the SQL Query code after edit by me (successfully get data from Oracle) :

#xA;

As I analyze, I get error if I didnt change the rownum to rownum1, error is ORA-00923: FROM keyword not found where expected .Thus I change it to rownum1, I think the rownum should be a keyword in DB2, is there any keyword like this for Oracle also?

In the line 4 last part, from DB2 code, it end with As tname. If I put the same things in Oracle code, I get error ORA-00933: SQL command not properly ended . Thus I erase the As . I not so understand how is the As tname means, As the SQL query in the bracket:

#xA;

It return me 2 columns, thus I am not understand how is the As tname interate with the 2 column.

Kindly advise.

0 投票
1 回答
293 浏览

sql - SQL Oracle - 在查询中使用 RowNum

我有两张表,例子如下。

我的查询必须根据 table_2 中的参数从 table_1 中选择 sysday 和正确日期之间的差异。如果 special_day_ind 是“Y”,那么我需要从 sysdate 返回 3 (numdays) 个 special_days。如果是“N”,则 numdays 就是答案。结果将是 ORDER(ed) BY order asc(ending)。

在上面的表格示例中,查询将返回。

系统日期 = 2013 年 10 月 14 日

似乎 ROWNUM 可以解决问题,但是使用不同的“计数方式”,我不确定如何进行。

0 投票
1 回答
56 浏览

mysql - 将查询附加到 MySQL 全文查询

我有一个这样的全文查询,它得到了我期望的结果

如果我搜索一个特定的关键字,我会得到一个 ID 为 4 的结果。问题是我需要一个额外的列,以便我可以搜索该 ID 以获取该 ID 的行位置。

如果我自己运行此查询,我会得到正确的结果,即 8

我想要做的是将这些查询合并到一个查询中,以便将第一个查询的 ID 传递到第二个查询的 WHERE 中,这样我的名为“位置”的附加列的值为 8

我试图结合查询,但这绝对是不对的

0 投票
2 回答
428 浏览

sql - 用于获取前 3 个 rownum 的子查询在 pl/sql 中不起作用

此代码不起作用:

第 2 行出现错误:ORA-06550:第 2 行,第 17 列:PLS-00103:在预期以下情况之一时遇到符号“SELECT”:(;返回符号“is”替换“SELECT”以继续。

0 投票
1 回答
609 浏览

macros - SAS宏解析调用symputx(获取当前行)

我正在使用 SAS 9.2,我得到了以下代码:

对于每条记录,我想获取 rownum,并将其与另一个宏变量结合起来。rownum 显示 foplist 数据集中记录的行号。出于某种原因,我总是得到数据集中的最后一个数字(可能是因为宏编译?)

例如: A --- rownum=1 B --- rownum=2

我只得到 rownum=2

知道如何解决吗?

谢谢!

0 投票
2 回答
1506 浏览

sql - SQL EXISTS 为什么选择rownum会导致执行计划低效?

问题

我试图理解为什么这两个 Oracle 语法更新查询中看似微小的差异会导致执行计划完全不同。

查询一:

查询 2:

如您所见,两者之间的唯一区别是查询 2 中的子查询返回一个 rownum 而不是每一行的值。

这两者的执行计划完全不同:

  • Query1 - 从两个表中提取总结果并使用排序和哈希连接来返回结果。这以有利的 2,346 成本执行良好(尽管使用了 EXISTS 子句和内聚子查询)。

  • Query2 - 也提取两个表结果,但使用计数和过滤器来完成相同的任务,并返回一个执行计划,其代价是惊人的 77,789,696!我应该注意到他的查询只是挂在我身上,所以我实际上并不肯定这会返回相同的结果(尽管我相信它应该)。

根据我对 Exists 子句的理解,它只是一个简单的布尔检查,在主表的每一行中运行。在我的 EXISTS 条件中返回单行还是 100,000 行都没有关系......如果它正在运行的行返回任何结果,那么您已经通过了存在检查。那么,为什么我的子查询 SELECT 语句返回什么重要呢?

- - - - - - - - - - 编辑 - - - - - - - - - - -

根据请求,以下是我在 TOAD 中运行的执行计划...请注意,为方便起见,我在上面的示例中编辑了表名 - 在这些计划中 ALSS_SALES2 = 上面的销售额和 SALESEXT_TMP = 上面的 tempTABLE。

也应该提到,但此时这两个表都没有索引。我还没有将它们添加到我的 tempTable 中,我正在使用仅包含字段和数据但没有索引的 sales 表的廉价副本进行测试,约束或安全性。

感谢大家的帮助!

查询1执行计划

Query1 执行计划

查询2执行计划

Query2 执行计划

------------------------------------------------

问题

1)为什么调用rownum会导致执行计划发生变化?

2) 过滤器的效率如此之低是怎么回事?

3) 我是否遗漏了导致这种变化的 Exists 子句的工作方式的一些基本内容?

0 投票
1 回答
105 浏览

sql - Oracle:从 A 点获取 X 行

我有一个存储过程,它获取附加到给定配置的项目列表(每个项目都附加到一个配置;如果不是(即字段是NULL),那么我们认为它附加到默认配置(其字段ISDEFAULT1) .我想使用分页获取项目。我记得该ROWNUM字段从一个开始,所以我写了(第一页使用0,每页十个项目):

这个请求给我返回了零个结果。

我将其更改为:

它奏效了!ROWNUMSELECT语句中添加解决了这个问题。

然后我尝试了:

我写回了SELECT *语句并将 移到了- 1比较运算符的另一侧(因此它们变成了+ 1)。这也有效。

有人可以解释为什么我的第一个查询不起作用并且产生零结果,而其他两个像魅力一样工作吗?

0 投票
1 回答
15004 浏览

sql - 如何在 MS ACCESS 中使用与 Oracle Rownum 相同的功能

我遇到一个问题,我做了一个可以通过检测滚动位置来加载数据的功能,该功能是用SQL语句“Rownum”制作的,它只适用于Oracle,但不适用于ACCESS。

我想查询数据并使用它

使用 Rownum 我们可以这样做

如何使用 Microsoft ACCESS 编写 SQL 语句

0 投票
1 回答
2095 浏览

oracle - Oracle 9 PL/SQL - 如何在没有子查询的情况下使用 order by 获取第一行

我知道“如何限制”或“如何获得第一行”已经发布了很多次,但我找不到针对我的具体问题的解决方案。

我有一个库存余额表,其中包含带有数量的 bin #

我想在我的行上包含最大数量的 bin #

真正的查询比这更大更复杂,但这个例子显示了我面临的问题

我首先做了

当只有一个数量最多的“垃圾箱”时,这将起作用。

如果同一商品有 2 个 bin,数量为 10(这是最大数量),则子查询将返回 2 行,触发 oracle 错误

然后我尝试了这个:

现在这将不起作用,因为在 from (...) 内部似乎对 item_table.itemnumber 的引用无效。尝试这样做时出现“无效的列名”错误。

我不能使用 ROW_NUMBER() 因为数据库上似乎没有激活“OLAP 窗口函数”。