使用ABAP delete duplicate时遇到的问题
最近在使用abap delete duplicate時(shí)發(fā)現(xiàn)刪除重復(fù)記錄不完全。
只刪除掉了部分重復(fù)記錄。最后經(jīng)過(guò)調(diào)試,沒(méi)發(fā)現(xiàn)其它問(wèn)題。于是再次研究delete duplicate語(yǔ)法
發(fā)現(xiàn)delete duplicate只刪除相鄰行的重復(fù)項(xiàng),保留第一條記錄,所以在對(duì)內(nèi)表進(jìn)行delete duplicate
操作時(shí)應(yīng)該注意先對(duì)內(nèi)表進(jìn)行排序,然后再執(zhí)行delete duplicate語(yǔ)句,即可將重復(fù)項(xiàng)完全刪除。
附:
ABAP delete duplicate的用法指南
DELETE ADJACENT DUPLICATE ENTRIES FROM <itab>
????????????????????????????????? [COMPARING <f1> <f 2> ...
???????????????????????????????????????????? |ALL FIELDS].
刪除相鄰行的重復(fù)項(xiàng),保留第一條記錄
1、如果沒(méi)有定義non-nuique鍵,并且在刪除的時(shí)候沒(méi)有指定條件,則將比較所有的字段;等同于比較
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鍵,則在沒(méi)有刪除的比較條件時(shí)比較該key,刪除相鄰的重復(fù)項(xiàng)。
3、可以使用指定條件進(jìn)行比較處理 COMPARING <f1> <f 2> ... ,此時(shí),需要所有指定字段在相鄰處相同,否則不會(huì)刪除。
當(dāng)然在此也可以使用動(dòng)態(tài)的方式指定比較的內(nèi)容,下面的例子二我做了一個(gè)簡(jiǎn)單的測(cè)試,僅供參考。
其他補(bǔ)充說(shuō)明:
如果對(duì)比較的字段進(jìn)行了事先的排序,則可以將所有該字段重復(fù)的行全部刪除。
如果至少刪除成功一條,則sy-subrc返回0,否則返回4.
轉(zhuǎn)載于:https://www.cnblogs.com/clsoho/archive/2010/03/31/1701158.html
總結(jié)
以上是生活随笔為你收集整理的使用ABAP delete duplicate时遇到的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在程序中生成PDF
- 下一篇: 酒桌上的规矩,社会的潜规则