使用DELETE ADJACENT DUPLICATES FROM <table>注意

来源:互联网 发布:mac os 10.7的升级包 编辑:程序博客网 时间:2024/05/30 23:02

DELETE ADJACENT DUPLICATES FROM <table>的功能是删除邻近相同的行,如果是为了把内表itab里部相同的行去掉,则应该对内表先按某个字段排序。

排序也是有讲究的,排序语句使用

SORT itab BY comp1, comp2,..., compi [ASCENDING|DESCENDING] 

通常我们会按一个字段进行排序,但是这有有可能相同的行排序不到一块去,比如今天我下行对itab_sf01表按BUKRS进行排序,结果如图

 

图1 排序及删除语句

 

图2 itab_sf01表内容

由图2可以发现,由于排序时只按BUKRS字段,所以第1行和第3行、第2行和第4行内容相同,但没有相邻,所以执行DLETE ADJACENT DUPLICATES FROM itab_sf01 也没有达到预期目的。

解决方案:把SORT语句改成 SORT itab_sf01 BY bukrs belnr gjahr augdt.即可。