ABAP 前导0的处理

2024-04-10 21:12
文章标签 处理 abap 前导

本文主要是介绍ABAP 前导0的处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前导0这个东西真的很烦,经常因为前导0导致连接条件有问题,出不来数据,这里就总结一下前导0 在sql语句中的添加和去除

文章目录

  • ABAP 前导0的处理
    • 添加前导0-自适应
      • 运行结果
    • 去除前导0
      • 方法一、使用SUBSTRING截取
        • 运行结果
      • 方法二、去零法
        • 运行结果

ABAP 前导0的处理

添加前导0-自适应

应用场景:需要用前导0来填充某些字段

REPORT z_test_zero_lhy.SELECTcarrid, "航线connid, "航班号lpad( connid, 10, '0' ) AS connid_l "在前面添加前导0,填充到10个长度为止FROM sflightINTO TABLE @DATA(lt_lpad).cl_demo_output=>display( lt_lpad ).

运行结果

在这里插入图片描述

在没有添加前导0的时候,查询不到数据

REPORT z_test_zero_lhy.DATA: BEGIN OF gs_data,werks TYPE mseg-werks,matnr TYPE marc-matnr,END OF gs_data.DATA gt_data LIKE TABLE OF gs_data.gs_data-werks = '1000'.
gs_data-matnr = '1781'.
APPEND gs_data TO gt_data.SELECTb~werks,b~matnr,c~maktxFROM @gt_data AS aLEFT JOIN marc AS b ON a~werks = b~werks AND a~matnr = b~matnrLEFT JOIN makt AS c ON  a~matnr = c~matnrWHERE c~spras = @sy-languINTO TABLE @DATA(lt_matnr).cl_demo_output=>display( lt_matnr ).

在这里插入图片描述

添加前导0之后

REPORT z_test_zero_lhy.DATA: BEGIN OF gs_data,werks TYPE mseg-werks,matnr TYPE marc-matnr,END OF gs_data.DATA gt_data LIKE TABLE OF gs_data.gs_data-werks = '1000'.
gs_data-matnr = '1781'.
APPEND gs_data TO gt_data.SELECTb~werks AS marc_werks,b~matnr AS marc_matnr,c~maktxFROM @gt_data AS aLEFT JOIN marc AS b ON a~werks = b~werks AND lpad( a~matnr,18,'0' ) = b~matnrLEFT JOIN makt AS c ON  lpad( a~matnr,18,'0' ) = c~matnrWHERE c~spras = @sy-languINTO TABLE @DATA(lt_matnr).cl_demo_output=>display( lt_matnr ).

在添加完前导0之后,才可以查询出相关的数据:
在这里插入图片描述

去除前导0

应用场景
A表A1字段取值后面两位与B表B1字段进行匹配连表,即连接条件的两个字段的长度不相等的时候,需要截取一段长度

方法一、使用SUBSTRING截取

这个方法适用于知道需要截取的位数,如下:

REPORT z_test_zero_lhy."工厂和供应商连接
SELECTmarc~werks, "工厂marc~matnr, "物料l~lifnr "供应商或债权人的帐号FROM marcLEFT JOIN lfa1 AS l ON substring( l~lifnr,7,4 ) = marc~werks "substring 供应商号 第七位开始取值4位 与 工厂匹配WHERE marc~werks = '1000'INTO TABLE @DATA(lt_temp)UP TO 20 ROWS.IF sy-subrc = 0.cl_demo_output=>display( lt_temp ).ENDIF.
运行结果

在这里插入图片描述

方法二、去零法

这个方法适用于不知道需要截取位数的情况下,可以使用去零法
LTRIM( arg, char ), String with the content of arg in which all trailing blanks and leading characters are removed that match the character in char. A blank in char is significant.
翻译:内容为arg的字符串,删除所有与char中字符匹配的尾随空格和前导字符。char中的空白是重要的。

"工厂和供应商连接
SELECTmarc~werks, "工厂marc~matnr, "物料l~lifnr "供应商或债权人的帐号FROM marcLEFT JOIN lfa1 AS l ON ltrim( l~lifnr,'0' ) = marc~werks "ltrim 供应商号 去掉0WHERE marc~werks = '1000'INTO TABLE @DATA(lt_temp2)UP TO 5 ROWS.IF sy-subrc = 0.cl_demo_output=>display( lt_temp2 ).ENDIF.
运行结果

在这里插入图片描述

这篇关于ABAP 前导0的处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/892162

相关文章

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结

Python使用python-docx实现自动化处理Word文档

《Python使用python-docx实现自动化处理Word文档》这篇文章主要为大家展示了Python如何通过代码实现段落样式复制,HTML表格转Word表格以及动态生成可定制化模板的功能,感兴趣的... 目录一、引言二、核心功能模块解析1. 段落样式与图片复制2. html表格转Word表格3. 模板生