DELETE ADJACENT DUPLICATES FROM语句的深入研究及应用

DELETE ADJACENT DUPLICATES FROM 语句,我们知道他的基本功能是:删除相邻行的重复数据。
但是他最终保留哪一行数据呢?

下面看看一个Demo:
  1. DATA : BEGIN OF itab OCCURS 0,
  2.          vbeln   TYPE lips-vbeln,
  3.          version TYPE c LENGTH 2,
  4.        END OF itab.

  5. itab-vbeln = '0084000010'.
  6. itab-version = '1'.
  7. APPEND itab.
  8. itab-vbeln = '0084000010'.
  9. itab-version = '2'.
  10. APPEND itab.
  11. itab-vbeln = '0084000010'.
  12. itab-version = '3'.
  13. APPEND itab.

  14. itab-vbeln = '0084000011'.
  15. itab-version = '2'.
  16. APPEND itab.
  17. itab-vbeln = '0084000011'.
  18. itab-version = '3'.
  19. APPEND itab.
  20. itab-vbeln = '0084000009'.
  21. itab-version = '2'.
  22. APPEND itab.
  23. itab-vbeln = '0084000009'.
  24. itab-version = '1'.
  25. APPEND itab.

  26. WRITE:/ '原始数据:'.
  27. LOOP AT itab.
  28.   WRITE: / itab-vbeln,itab-version.
  29. ENDLOOP.

  30. SORT itab BY vbeln ASCENDING version DESCENDING.
  31. WRITE:/ '排序数据:'.
  32. LOOP AT itab.
  33.   WRITE: / itab-vbeln,itab-version.
  34. ENDLOOP.

  35. DELETE ADJACENT DUPLICATES FROM itab COMPARING vbeln.
  36. WRITE:/ '排序数据:'.
  37. LOOP AT itab.
  38.   WRITE: / itab-vbeln,itab-version.
  39. ENDLOOP.
复制代码

测试结果:
 
可见DELETE ADJACENT DUPLICATES FROM只保留相邻重复行的第一行数据,大家也可以测试测试其他场景验证。

实战中用法举例:

主数据下发:一种主数据下发,可能有多个版本号,我们只保留版本号最大的一条数据,作为最新数据。用这种方法最简单啦


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP剑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值