SAP ABAP基础知识点-语法-DELETE ADJACENT DUPLICATES FROM 语句用于从内部表中删除相邻的重复行-用法解释

目录

业务说明

语法解释

例句代码展示

例句代码解释

模拟代码执行


业务说明

在ABAP编程过程中,如果出现相同的行,如何删除?类似EXCEL表中在VLOOKUP后,可能出现不同的行有重复内容的情况,所以现进行排序,这样就把相同重复行集中在一起了,然后再进行相邻重复行去重操作。在ABAP语法中,语句' DELETE ADJACENT DUPLICATES FROM ' 就是用于删除从内表中进行相邻重复数据去重作用。

语法解释

语句:DELETE ADJACENT DUPLICATES FROM

在SAP ABAP中,DELETE ADJACENT DUPLICATES FROM 语句用于从内部表中删除相邻的重复行。该语句通过指定一个或多个字段来比较行,并删除那些在这些字段上具有相同值的相邻行,只保留第一行或最后一行(取决于GIVING子句的使用,如果没有GIVING子句,则默认保留第一行)。

例句代码展示

DELETE ADJACENT DUPLICATES FROM lt_releasegroup COMPARING frggr frgco.

例句代码解释

lt_releasegroup:是要进行去重操作的内部表(内表)的名称。
COMPARING frggr frgco:指定了用于比较行是否重复的字段。在这个例子中,frggr 和 frgco 是lt_releasegroup内表中的字段,ABAP将比较相邻行的这两个字段的值。

模拟代码执行

当执行这条语句时,ABAP会遍历lt_releasegroup内表中的行,并检查每一行与下一行在frggr和frgco字段上的值是否相同。如果找到相邻的两行在这两个字段上的值都相同,那么它会删除其中的一行(默认是后一行,但可以通过GIVING子句来改变这个行为)。

frggr | frgco | ...(其他字段)
------|-------|-----------------
A     | 1     | ...
A     | 1     | ...(这行会与上一行比较并被删除)
B     | 2     | ...
A     | 1     | ...(这行不会与上一行比较,因为它们不是相邻的)

执行DELETE ADJACENT DUPLICATES FROM lt_releasegroup COMPARING frggr frgco.后,内表将变为:

frggr | frgco | ...(其他字段)
------|-------|-----------------
A     | 1     | ...
B     | 2     | ...
A     | 1     | ...

 注意,第三行(A | 1)没有被删除,因为它与第一行不是相邻的。

Done.

Created on 25th January, 2025

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值