删除相邻重复项,删除顺序



如果有相同键的条目

按键排序。从tab比较键中删除相邻的重复项

有谁知道哪个将被删除,如果删除相邻的重复…比较键?第一个还是第二个?

From F1 help on "delete邻接副本"

如果有几行双行,所有的除第一行外,其他行将被删除。

所以第二行(相同的)应该被删除

认为,

不需要对标准表进行排序,您可以考虑将另一个内部表声明为具有相同类型的排序表,该表具有与要比较的字段对应的惟一键,以消除重复项。它更快,允许您保持原始表不变,而且,在我看来,使您的代码更具可读性,因为它更容易理解哪些行被保留,哪些行不被保留。例子:

LOOP AT itab ASSIGNING <itab_row>.
  INSERT <itab_row> INTO TABLE sorted_itab.
ENDLOOP.

如果itab中的数据是从DB中获取的,那么它比在SELECT中使用ORDER BY addition和使用delete相邻的重复项要好。排序算法的成本为nlog(n),并且DBMS比ABAP更好地完成这些类型的操作。显然,如果你能在SQL中使用DISTINCT或GROUP BY你就可以避免使用SORT和删除相邻的重复项你就可以解决所有的性能问题

相关内容

  • 没有找到相关文章

最新更新