在内部表B中查找内部表A中不存在的行

2020-08-25 14:21发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我有两个内部表。 ...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我有两个内部表。

只是为了阐明我的观点。 我正在举一个例子:

内部表A包含10个条目,内部表B包含12个条目。

表A和B有10个共同的条目。 现在,我对B中而不是A中的2个条目感兴趣。

我正在使用以下方法:

在这里,我只是从B中删除A中存在的条目。

将LOOP AT 放入
删除 WHERE(Where_Condition)。
ENDLOOP。

但是效率不高。 因此,您能建议我采取任何有效的方法来实现这一目标吗?

我还要动态创建上述where条件。

任何帮助将不胜感激。

谢谢

Partish

7条回答
Tong__Ming
2020-08-25 14:47

在大多数情况下,嵌套内部表操作的问题是通过线性搜索访问内部表,从而导致 O(n ^ 2) 时间复杂度,对于大量记录而言,这是非常糟糕的。 这也适用于DELETE。

可以通过仔细选择表类型/表键来避免这种情况,例如,将表B定义为具有DELETE语句可以使用的主键的排序表。

但是,如果您正在建立动态的WHERE条件-正如您提到的-这可能涉及RTTS的使用。

一周热门 更多>