如何获取 ABAP 内表中的重复项

devtools/2024/12/28 22:26:07/

要识别 ABAP 内表中的重复项,可以结合使用排序和循环。下面的示例展示了如何查找内部表中的重复条目:

ABAP">DATA: BEGIN OF itab OCCURS 0,field1 TYPE i,field2 TYPE c LENGTH 10,END OF itab,wa LIKE LINE OF itab.* Add sample data to internal table
itab-field1 = 1. itab-field2 = 'A'. APPEND itab.
itab-field1 = 2. itab-field2 = 'B'. APPEND itab.
itab-field1 = 1. itab-field2 = 'A'. APPEND itab.
itab-field1 = 3. itab-field2 = 'C'. APPEND itab.
itab-field1 = 2. itab-field2 = 'B'. APPEND itab.* Sort internal table by the fields you want to check duplicates for
SORT itab BY field1 field2.* Compare current record with

ABAP 中,您可以使用简单的逻辑来识别和显示内表中的重复数据。一种常见的方法是使用 SORTDELETE ADJACENT DUPLICATES 来标记或分离重复数据。但是,如果要保留重复数据以作进一步处理或显示,则可以使用另一种使用循环的方法。

下面的示例展示了如何查找和显示内表中的重复数据:

ABAP">TYPES: BEGIN OF ty_data,id   TYPE i,name TYPE string,END OF ty_data.DATA: lt_table TYPE TABLE OF ty_data,ls_table TYPE ty_data,lt_duplicates TYPE TABLE OF ty_data." Populate the internal table with test data
APPEND VALUE #( id = 1 name = 'John' ) TO lt_table.
APPEND VALUE #( id = 2 name = 'Jane' ) TO lt_table.
APPEND VALUE #( id = 3 name = 'John' ) TO lt_table.
APPEND VALUE #( id = 4 name = 'Alice' ) TO lt_table.
APPEND VALUE #( id = 5 name = 'Jane' ) TO lt_table.
APPEND VALUE #( id = 6 name = 'John' ) TO lt_table." Sort the internal table by name or ID to find duplicates
SORT lt_table BY name." Loop through the table to find duplicates
LOOP AT lt_table INTO ls_table.AT END OF name.IF sy-tabix - sy-tabbix > 1.LOOP AT lt_table FROM sy-tabbix TO sy-tabix INTO ls_table.APPEND ls_table TO lt_duplicates.ENDLOOP.ENDIF.ENDAT.
ENDLOOP." Display the duplicates
LOOP AT lt_duplicates INTO ls_table.WRITE: / 'Duplicate:', ls_table-id, ls_table-name.
ENDLOOP.

说明:

  1. 内部表(lt_table): 该表存储数据记录。
  2. 排序: 该表按预计会发现重复记录的列(本例中 name )排序。
  3. 使用 AT END OF 循环:检查一组记录是否具有相同的键(本例中 name)。如果发现某个键有多条记录,这些条目就会被识别为重复。
  4. 重复处理: 如果发现重复记录,则将其收集到 lt_duplicates 表中。
  5. 显示: 然后使用 LOOP 显示重复数据。
    这种方法可确保检测到重复数据,并将其存储在单独的内部表中,以便进一步处理。

http://www.ppmy.cn/devtools/145174.html

相关文章

Web前端基础知识(一)

前端是构建网页的一部分,负责用户在浏览器中看到和与之交互的内容。 网页是在浏览器中呈现内容的文档或页面。 通常,网页使用HTML、CSS、JavaScript(JS)组成。 HTML:定义了页面的结构和内容。包括文本、图像、链接等。 CSS:定义页面的样式…

java 构建树型结构

构建属性结构 public static List<Map<String, Object>> buildTree(List<AreaInfo> dataList) {Map<String, Map<String, Object>> nodeMap new HashMap<>();List<Map<String, Object>> result new ArrayList<>();for…

C语言中的宏定义:无参宏与带参宏的详细解析

C语言中的宏定义&#xff1a;无参宏与带参宏的详细解析 在C语言中&#xff0c;宏定义是一种非常强大的预处理功能&#xff0c;通过#define指令可以定义一些常量或者代码片段&#xff0c;用来减少代码重复&#xff0c;提高可读性。本文将详细讲解无参宏与带参宏的使用方法&…

Windows10 下通过 Visual Studio2022 编译 openssl 3.4 + POCO 1.14.1

Windows10 下通过 Visual Studio2022 编译 POCO库 1 POCO库简介2 环境准备2.1 VS Studio 2022 安装2.2 openssl 安装3 编译 POCO 1.14.13.1 下载源码3.2 修改编译配置3.2.1 修改 poco\Crypto 工程 引用 openssl 的配置3.2.2 修改 poco\NetSSL_OpenSSL 工程 引用 openssl 的配置…

WebAPI编程(第一天,第二天)

WebAPI编程&#xff08;第一天&#xff0c;第二天&#xff09; day01 - Web APIs 1.1. Web API介绍 1.1.1 API的概念1.1.2 Web API的概念1.1.3 API 和 Web API 总结 1.2. DOM 介绍 1.2.1 什么是DOM1.2.2. DOM树 1.3. 获取元素 1.3.1. 根据ID获取1.3.2. 根据标签名获取元素1.3.…

网络安全攻防演练中的常见计策

大家觉得有意义记得关注和点赞&#xff01;&#xff01;&#xff01; 引言 在网络安全攻防演练里面&#xff0c;用于分析攻击者动机和行为的&#xff0c;国外的有基于攻击链分析的模型&#xff08;如Cyber Kill Chain和ATT&CK&#xff09;和基于威胁行为的模型&#xff08…

ArcGIS Pro 3.4新功能3:空间统计新特性,基于森林和增强分类与回归,过滤空间自相关

目录 应用 1&#xff1a;它是相关性还是托布勒第一定律&#xff1f; 应用 2&#xff1a;将空间带入非空间模型 结论 在 ArcGIS Pro 3.4 中&#xff0c;我们在新的空间组件实用程序&#xff08;Moran 特征向量&#xff09;工具集中发布了一个新工具 - 从字段过滤空间自相关。…

小白考研历程:跌跌撞撞,起起伏伏,五个月备战历程!!!

说真的&#xff0c;7月前我都没有想过我自己要考研&#xff0c;属于前期都是在大学中准备比赛&#xff0c;证书&#xff0c;直到参加蓝桥杯获得国赛三等奖&#xff0c;我问自己&#xff0c;再继续参加比赛吗&#xff1f;已经没有并肩同行的同学&#xff08;他们都准备考公考研啦…