前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ABAP 之数据去重的详细用法

ABAP 之数据去重的详细用法

作者头像
百里丶落云
发布2022-12-07 14:18:20
1.3K0
发布2022-12-07 14:18:20
举报
文章被收录于专栏:享~方法

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第16天,点击查看活动详情

HELLO ,这里是百里,一个学习中的ABAPER,ABAP语言是一门神奇的语言,他sql分成两种,一种操作数据库,一种操作内表.没错在别的语言中你绝对没听过一种叫做内表的东西.你可以理解为自定义一个变量,然后你可以操作对应的变量内表数据.或者可以理解为excel 中的对应的SHEET .扯远了,我们今天说的是内表的去重方式 .

什么是数据去重

举个例子,就像excel两行中有出现相同的数据.我们需要只取一条那么就是去重. 传统sql 是distinct 或者group by 两种方式,但是这种是不删除实体数据的, 我们此时所说的ABAP 去中是进行delete 的方式.我们会删了对应的内表数据 .

语法介绍

在去重之前,我们首先需要进行数据存放进内表,然后把内表数据进行排序, 注意排序内容,尽量与需要去重的数据一致.

代码语言:javascript
复制
SORT ITAB(内表名) BY 重复字段名.
DELETE ADJACENT DUPLICATES FROM itab(内表名) COMPARING针对的字段.

该语法用于删除对应的内容数据内容, 删除的条件是 comparing 针对的字段, 删除的结果是不论你有多少条数据,最终只是留下比较的数据唯一一条.

全部删除与针对删除

代码语言:javascript
复制
delete adjacent duplicates from 内表名 .

delete adjacent duplicates from 内表名 comparing 字段1 字段2 .

如果不写comparing 及后面的字段,则是所有字段均进行比较可以理解distinct .

增加了字段则是说只针对对应数据进行数据去重.

实际案例

数据准备

代码语言:javascript
复制
TABLES : ZWDEMOTABLE1 .  
" 数据准备  
  
  
  
TYPES:BEGIN OF ty_Data  ,  
  uom TYPE char20 ,  
    doccode TYPE char20 ,  
   zrowid TYPE char20 ,  
  matcode TYPE char20 ,  
  matname TYPE char20 ,  
  
  memo TYPE char20 ,  
  
  
     light TYPE iconname, "指示灯  
        msg   TYPE string,"消息  
  
  END OF ty_Data .  
  
data :gs_DAta TYPE ty_Data .  
data :gt_Data TYPE TABLE of ty_Data .

获取数据内容

代码语言:javascript
复制
select *  from  ZWDEMOTABLE1 into CORRESPONDING FIELDS OF TABLE gt_Data .

如图我们有一列是具有相同数据的列数据,其中双为多次内容.

image.png
image.png

使用语法

代码语言:javascript
复制
sort gt_Data  by uom  doccode zrowid matcode matname memo .  
  
DELETE ADJACENT DUPLICATES FROM gt_Data COMPARING uom .

我们按照uom 数据进行排序以后,去重,我们只是参照uom进行去重,我们按照前面说的内容最终我们只会保留不重复对比的内容,即除了其中有3个双数据,我们只会保留一个双. 我们只会保留双的唯一一行数据.

image.png
image.png

新增一个对比字段

代码语言:javascript
复制
DELETE ADJACENT DUPLICATES FROM gt_Data COMPARING uom doccode.

此时我们比对的就是uom ,及doccode 对应的字段内容,很容易看出 有5条数据 .

image.png
image.png

技术总结

今天讲述的内容是又是一个工作中经常用到的知识点,内表去重,熟练使用内表去重可以增加alv查询的效率,等等环境都会使用到.

百里鸡汤

with great power comes great responsibility

这里是百里,一个努力的学习者. 努力学习好好记录,点滴进步,就是成功.

78310a55b319ebc4bd8aa6d78f26cffc1f171689.png
78310a55b319ebc4bd8aa6d78f26cffc1f171689.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是数据去重
  • 语法介绍
  • 全部删除与针对删除
  • 实际案例
    • 数据准备
      • 获取数据内容
        • 使用语法
          • 新增一个对比字段
      • 技术总结
      • 百里鸡汤
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档