最近在使用abap delete duplicate时发现删除重复记录不完全。

只删除掉了部分重复记录。最后经过调试,没发现其它问题。于是再次研究delete duplicate语法

发现delete duplicate只删除相邻行的重复项,保留第一条记录,所以在对内表进行delete duplicate

操作时应该注意先对内表进行排序,然后再执行delete duplicate语句,即可将重复项完全删除。

附:

ABAP delete duplicate的用法指南
DELETE ADJACENT DUPLICATE ENTRIES FROM <itab>
                                  [COMPARING <f1> <f 2> ...
                                             |ALL FIELDS].
删除相邻行的重复项,保留第一条记录
1、如果没有定义non-nuique键,并且在删除的时候没有指定条件,则将比较所有的字段;等同于比较
DELETE ADJACENT DUPLICATES FROM ITAB COMPARING ALL FIELDS
定义non-unique字段方式如下:
DATA ITAB LIKE STANDARD TABLE OF LINE
          WITH NON-UNIQUE KEY COL2.
2、如果有non-unique键,则在没有删除的比较条件时比较该key,删除相邻的重复项。
3、可以使用指定条件进行比较处理 COMPARING <f1> <f 2> ... ,此时,需要所有指定字段在相邻处相同,否则不会删除。
当然在此也可以使用动态的方式指定比较的内容,下面的例子二我做了一个简单的测试,仅供参考。

其他补充说明:
如果对比较的字段进行了事先的排序,则可以将所有该字段重复的行全部删除。
如果至少删除成功一条,则sy-subrc返回0,否则返回4.

转载于:https://www.cnblogs.com/clsoho/archive/2010/03/31/1701158.html

使用ABAP delete duplicate时遇到的问题相关推荐

  1. ABAP delete的用法

    sort itab by matkl .   delete adjacent duplicates from itab comparing  matkl. uline at /1(70). ----- ...

  2. SAP ABAP bcset激活时,关联的数据库表条目是如何插入的

    本文介绍SAP ABAP bcset激活时,关联的数据库表条目是如何插入的. 要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  3. mysql当执行delete语句时备份_mysql中,执行delete语句时出现Lock wait timeout exceeded问题...

    问题描述: 当我插入一条记录时,在调用save方法的时候出现了异常(记录重复了),导致了后面的commit语句不能执行了.这时我在数据库中删除重复记录时发现该表已经被锁上了.即出现 错误.但过了一会再 ...

  4. ABAP SUBMIT 程序时带屏幕默认值

    在SAP的程序中调用其他程序时有很多实现方法,这里介绍的是使用SUBMIT时如何携带参数值过去,下面是一段简单的代码实现. DATA:lt_rspar  TYPE TABLE OF rsparams, ...

  5. Abap DELETE - duplicates

    今天发现自已一直忽视了一个问题, DELETE - duplicates 删除内表重复记录语句是有条件限制的,必需是依据关键字或你定义的字段排序后才行. 仔细看了一下它的文档,确实是它只能对相邻的相同 ...

  6. java duplicate parameter e_传递参数[duplicate]时出现问题

    我试图写一个函数,它接收一个指向一个文件的指针和两个字符串(一个文件名和一个模式).它应该请求一个文件名,并在错误检查时打开一个文件.但是代码不能编译,我花了几个小时寻找原因. #include #i ...

  7. ABAP 创建PO时关联PR号

    我们创建PO时一般可以调用BAPI CALL FUNCTION 'BAPI_PO_CREATE1'         EXPORTING           poheader         = poh ...

  8. mysql删除记录后id不连续_Mysql数据库中使用DELETE语句时,一般删除一条记录后ID会不连续,才能让序号继续按顺序排列?...

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  9. 读书笔记 effective c++ Item 16 成对使用new和delete时要用相同的形式

    1. 一个错误释放内存的例子 下面的场景会有什么错? 1 std::string *stringArray = new std::string[100]; 2 3 ... 4 5 delete str ...

最新文章

  1. 【laravel】开发过程中会遇到的问题
  2. 《软件测试方法和技术》 读书笔记
  3. linux重启配置文件,rEFInd启动管理器配置文件详解
  4. 8.网页找不到服务器
  5. 如何将Eclipse设置为中文简体
  6. instantclient oracle oci
  7. 《简明python教程》沈洁元
  8. 去哪儿 android2..3.6版本,去哪儿兜行手机版下载下载|去哪儿兜行安卓版(Android)2.1下载_太平洋下载中心...
  9. IDEA设置版权信息
  10. 如何自动发送生日提醒和祝福
  11. python 实现盒滤波boxfilter
  12. 3D模型欣赏:汉服美女 【3D游戏建模教程】
  13. 【翻译】CSPNet: A New Backbone that can Enhance Learning Capability of CNN
  14. 纯CSS画基本图形(矩形、圆形、三角形、多边形、爱心)
  15. 智商黑洞(门萨Mensa测试)8
  16. 任正非的忠告:不赚钱的产品就关闭压缩
  17. Plant Simulation 更改字体样式
  18. Android 和 H5 交互-框架篇
  19. 正则表达式的点星匹配
  20. html中如何把一个div放到页面底部,html – 如何将DIV锚定到页面的底部?

热门文章

  1. LeetCode 802. 找到最终的安全状态(逆向图+拓扑排序)
  2. LeetCode 291. 单词规律 II(回溯)
  3. LeetCode MySQL 1158. 市场分析 I
  4. oracle oci.dll的作用,ASP.NET bin目录中的Oracle oci.dll无法删除/不起作用
  5. python中的range与list函数
  6. python展开 c函数中的宏预处理_C 语言常用的预处理-宏函数
  7. 别再无脑wwm了!在下游任务中不一定有效!
  8. 预训练卷不动,可以卷输入预处理啊!
  9. 深度学习在美团的应用
  10. 配送交付时间轻量级预估实践