打开与ROW_NUMBER()等价的SQL

  • 本文关键字:SQL NUMBER ROW abap opensql
  • 更新时间 :
  • 英文 :


对于ABAP程序,是否有一个等价的ROW_NUMBER()函数?

这个函数在SQL中的用法如下:

SELECT ROW_NUMBER() OVER (ORDER BY SomeField) AS Row, *
FROM SomeTable

应该返回行号作为结果行的第一列(我不确定它是结果集中的行号还是源表中的行号)。我发现这个语句可以在SAP Business One中使用,但似乎找不到一个等效的Open SQL。

是否有一个,或者我将被迫手动循环生成的itab来分配索引?

如果这是为了存储保存记录的行以便稍后在ABAP程序中访问,则不需要存储它。当你循环时,它会被保存下来。类似。

LOOP AT itab INTO wa_itab.
write /:sy-tabix "This is the index of the record within the table
ENDLOOP.

如果你正在修改内容,然后将它们存储回表中,为你的值添加一列,并做如下操作:DATA: my_string TYPE string.

LOOP AT itab INTO wa_itab.
my_string = sy-tabix.
CONCATENATE some_text my_string more_text into wa_itab-my_field.
MODIFY itab FROM wa_itab. "Here you can leave out INDEX sy-tabix because it is inside a loop and the current line will be used.
CLEAR my_string.
ENDLOOP.

不,这在OpenSQL中是不可能的。这在五年前是不可能的,现在仍然不可能。

但是,在SAP HANA中可以使用CREATE SEQUENCE语句。

相关内容

  • 没有找到相关文章

最新更新