ABAP delete的用法
sort?itab?by?matkl?.
??delete?adjacent?duplicates?from?itab?comparing??matkl.
uline?at?/1(70).
---------------------------------------------------------------------------
最近在使用abap delete duplicate時發現刪除重復記錄不完全。
只刪除掉了部分重復記錄。最后經過調試,沒發現其它問題。于是再次研究delete duplicate語法
發現delete duplicate只刪除相鄰行的重復項,保留第一條記錄,所以在對內表進行delete duplicate
操作時應該注意先對內表進行排序,然后再執行delete duplicate語句,即可將重復項完全刪除。
排序注意點:升序 sort itab (ascending),降序 sort itab descending.
附:
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.
總結
以上是生活随笔為你收集整理的ABAP delete的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ALV输出的时候,输出字段内容前面的空格
- 下一篇: Dynpro程序抬头信息要求多值输入的解