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

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor

我们需要引入包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>sp

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

明明的随机数处理问题分析与解决方案

明明的随机数处理问题分析与解决方案 引言问题描述解决方案数据结构设计具体步骤伪代码C语言实现详细解释读取输入去重操作排序操作输出结果复杂度分析 引言 明明生成了N个1到500之间的随机整数,我们需要对这些整数进行处理,删去重复的数字,然后进行排序并输出结果。本文将详细讲解如何通过算法、数据结构以及C语言来解决这个问题。我们将会使用数组和哈希表来实现去重操作,再利用排序算法对结果

8. 自然语言处理中的深度学习:从词向量到BERT

引言 深度学习在自然语言处理(NLP)领域的应用极大地推动了语言理解和生成技术的发展。通过从词向量到预训练模型(如BERT)的演进,NLP技术在机器翻译、情感分析、问答系统等任务中取得了显著成果。本篇博文将探讨深度学习在NLP中的核心技术,包括词向量、序列模型(如RNN、LSTM),以及BERT等预训练模型的崛起及其实际应用。 1. 词向量的生成与应用 词向量(Word Embedding)

使用协程实现高并发的I/O处理

文章目录 1. 协程简介1.1 什么是协程?1.2 协程的特点1.3 Python 中的协程 2. 协程的基本概念2.1 事件循环2.2 协程函数2.3 Future 对象 3. 使用协程实现高并发的 I/O 处理3.1 网络请求3.2 文件读写 4. 实际应用场景4.1 网络爬虫4.2 文件处理 5. 性能分析5.1 上下文切换开销5.2 I/O 等待时间 6. 最佳实践6.1 使用 as

Level3 — PART 3 — 自然语言处理与文本分析

目录 自然语言处理概要 分词与词性标注 N-Gram 分词 分词及词性标注的难点 法则式分词法 全切分 FMM和BMM Bi-direction MM 优缺点 统计式分词法 N-Gram概率模型 HMM概率模型 词性标注(Part-of-Speech Tagging) HMM 文本挖掘概要 信息检索(Information Retrieval) 全文扫描 关键词

PHP7扩展开发之数组处理

前言 这次,我们将演示如何在PHP扩展中如何对数组进行处理。要实现的PHP代码如下: <?phpfunction array_concat ($arr, $prefix) {foreach($arr as $key => $val) {if (isset($prefix[$key]) && is_string($val) && is_string($prefix[$key])) {$arr[

PHP7扩展开发之字符串处理

前言 这次,我们来看看字符串在PHP扩展里面如何处理。 示例代码如下: <?phpfunction str_concat($prefix, $string) {$len = strlen($prefix);$substr = substr($string, 0, $len);if ($substr != $prefix) {return $prefix." ".$string;} else