记录的行号

2020-08-15 08:35发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我想从餐桌上获得第5条记...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我想从餐桌上获得第5条记录。

我应该找回它吗?

致谢

diptojyoti dutta

4条回答
一只江湖小虾
2020-08-15 08:45

关于您的需求最重要的部分是,您需要具有已定义的排序顺序,否则,您的需求将很成问题。 如果您的排序顺序是"主键",则仍然必须在select语句中定义该排序顺序,以始终保证此顺序。

对于ABAP 7.52,您可以将offset和up一起使用 到n行,您可以选择"第5条记录"。 但是,必须使用OFFSET定义ORDER BY语句。 这是因为像上面解释的那样,默认情况下,没有特别定义的顺序,不能保证返回的数据集是可靠的顺序。

有关更多信息SELECT ... OFFSET,请阅读ABAP文档:

" ABAP 7.52及更高版本

 SELECT * FROM sbook
        ORDER BY卡里德,康妮,弗拉特,书生
        到表@DATA(result_5th)
        最多1行
        偏移量4。
 cl_demo_output => write(result_5th)。

 SELECT * FROM sbook
        ORDER BY卡里德,康妮,弗拉特,书生
        插入表@DATA(result_all)。
 cl_demo_output => display(result_all)。
 

如果您具有ABAP 7.51和更低版本,则SELECT ... OFFSET语句不可用。 因此,您将必须选择所有数据,直到请求的记录,然后再释放您不想拥有的那些记录。 您也可以选择执行SELECT ... ENDSELECT语句,仅复制第5条记录并退出选择循环,不过我不建议这样做,特别是如果您正在寻找例如 由于性能原因,第100,000条记录。 (作为附带说明,最好将SELECT ... ENDSELECT与PACKAGE SIZE x结合使用。)

" ABAP 7.51及更低版本

 SELECT * FROM sbook
        ORDER BY卡里德,康妮,弗拉特,书生
        到表@DATA(result_5th)
        最多5行。
 从1到4删除result_5th。
 cl_demo_output => write(result_5th)。

 SELECT * FROM sbook
        ORDER BY卡里德,康妮,弗拉特,书生
        插入表@DATA(result_all)。
 cl_demo_output => display(result_all)。
 

一周热门 更多>