ABAP 前导0的处理

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

文章目录

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

ABAP 前导0的处理

添加前导0-自适应

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

REPORT z_test_zero_lhy.

SELECT
  carrid, "航线
  connid, "航班号
  lpad( connid, 10, '0' ) AS connid_l "在前面添加前导0,填充到10个长度为止
  FROM sflight
  INTO 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.

SELECT
  b~werks,
  b~matnr,
  c~maktx
  FROM @gt_data AS a
  LEFT JOIN marc AS b ON a~werks = b~werks AND a~matnr = b~matnr
  LEFT JOIN makt AS c ON  a~matnr = c~matnr
  WHERE c~spras = @sy-langu
  INTO 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.

SELECT
  b~werks AS marc_werks,
  b~matnr AS marc_matnr,
  c~maktx
  FROM @gt_data AS a
  LEFT JOIN marc AS b ON a~werks = b~werks AND lpad( a~matnr,18,'0' ) = b~matnr
  LEFT JOIN makt AS c ON  lpad( a~matnr,18,'0' ) = c~matnr
  WHERE c~spras = @sy-langu
  INTO TABLE @DATA(lt_matnr).

cl_demo_output=>display( lt_matnr ).

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

去除前导0

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

方法一、使用SUBSTRING截取

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

REPORT z_test_zero_lhy.

"工厂和供应商连接
SELECT
  marc~werks, "工厂
  marc~matnr, "物料
  l~lifnr "供应商或债权人的帐号
  FROM marc
  LEFT 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中的空白是重要的。

"工厂和供应商连接
SELECT
  marc~werks, "工厂
  marc~matnr, "物料
  l~lifnr "供应商或债权人的帐号
  FROM marc
  LEFT JOIN lfa1 AS l ON ltrim( l~lifnr,'0' ) = marc~werks "ltrim 供应商号 去掉0
  WHERE marc~werks = '1000'
  INTO TABLE @DATA(lt_temp2)
  UP TO 5 ROWS.

  IF sy-subrc = 0.
    cl_demo_output=>display( lt_temp2 ).
  ENDIF.

运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/530754.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小白新手学习 Python 使用哪个 Linux 系统更好?

对于小白新手学习Python,选择哪个Linux系统是一个很重要的问题,因为不同的Linux发行版(distribution)有着不同的特点、优势和适用场景。在选择时,需要考虑到易用性、学习曲线、社区支持等因素。 Ubuntu Ubuntu 是一个…

【AcWing】蓝桥杯集训每日一题Day16|哈希|FloodFill算法|字典序最小|映射|1402.星空之夜(C++)

1402.星空之夜 1402. 星空之夜 - AcWing题库难度:中等时/空限制:1s / 64MB总通过数:3415总尝试数:7434来源:usaco training 5.1算法标签Flood Fill哈希DFSBFS 题目内容 夜空深处,闪亮的星星以星群的形式出…

Spring Cloud系列(二):Eureka Server应用

系列文章 Spring Cloud系列(一):Spirng Cloud变化 Spring Cloud系列(二):Eureka Server应用 目录 前言 注册中心对比 Nacos Zookeeper Consul 搭建服务 准备 搭建 搭建父模块 搭建Server模块 启动服务 测试 其他 前言 前面针对新版本的变化有了…

Linux--进程的概念(二)

目录 一、进程的优先级1.1 基本概念1.2 查看进程优先级1.3 PRI&NI1.4 如何更改进程的优先级1.4.1 用top命令更改进程的nice1.4.2 用renice命令更改进程的nice 1.5 其他概念 二、环境变量2.1 基本概念2.2 常见的环境变量2.3 查看环境变量2.3.1 测试PATH2.3.2 测试HOME2.3.3 …

安全操作代码优化思路

理论依据 数据增强和样本选择 在训练阶段,您可以考虑添加数据增强来提升模型的鲁棒性和泛化能力。针对人脸检测任务,可以尝试以下改进: 对输入图像进行随机裁剪、缩放、旋转、翻转等数据增强操作,以增加数据的多样性。 使用难样…

【堡垒机】堡垒机的介绍

目前,常用的堡垒机有收费和开源两类。 收费的有行云管家、纽盾堡垒机; 开源的有jumpserver; 这几种各有各的优缺点,如何选择,大家可以根据实际场景来判断 什么是堡垒机 堡垒机,即在一个特定的网络环境下&…

革命性突破:Stability AI发布全新12B参数Stable LM 2模型,颠覆AI界!

Stability AI已推出其Stable LM 2语言模型系列的最新成员:一个120亿参数的基础模型和一个经过指令调优的变体。这些模型在七种语言上训练,包括英语、西班牙语、德语、意大利语、法语、葡萄牙语和荷兰语,训练数据达到了令人印象深刻的两万亿个…

JavaScript(1)神秘的编程技巧

大家都感兴趣的箭头函数 箭头函数在许多场景中都可以发挥作用,尤其适用于简化函数声明和提高代码的可读性。以下是箭头函数可以使用的一些常见方面: (1)回调函数: 箭头函数特别适合作为回调函数,例如在事…

【教程】App打包成IPA文件类型的四种方法

摘要 本教程总结了将App应用程序打包为IPA包的四种常用方法,包括Apple推荐的方式、iTunes拖入方法、自动编译脚本和解压改后缀名方法。每种方法都有其特点和适用场景,在实际开发中可以根据需求选择合适的方式进行打包。通过本教程,您将了解到…

微服务(狂神)

什么是微服务: 微服务方案: 1. SpringCloud NetFlix 2. Dubbo 3. SpringCloud Alibaba 解决了什么问题: 1. 服务过多,客户端怎么访问 2. 服务过多,服务间怎么传值 3. 服务过多,如何治理 4. 服务过多…

【随笔】Git 高级篇 -- 最近标签距离查询 git describe(二十一)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

JVM基础第一篇

内存结构 程序计数器 1.定义 在Java虚拟机(JVM)中,每个线程都有一个独立的程序计数器,它是线程私有的,不会被线程切换所影响。 2.作用 记住下一条jvm指令的执行地址 3.特点 是线程私有的不会存在内存溢出 虚拟机…

nginx配置证书和私钥进行SSL通信验证

文章目录 一、背景1.1 秘钥和证书是两个东西吗?1.2 介绍下nginx配置文件中参数ssl_certificate和ssl_certificate_key1.3介绍下nginx支持的证书类型1.4 目前nginx支持哪种证书格式?1.5 nginx修改配置文件目前方式也会有所不同1.6 介绍下不通格式的证书哪…

【DM8】序列

创建序列 图形化界面创建 DDL CREATE SEQUENCE "TEST"."S1" INCREMENT BY 1 START WITH 1 MAXVALUE 100 MINVALUE 1;参数&#xff1a; INCREMENT BY < 增量值 >| START WITH < 初值 >| MAXVALUE < 最大值 >| MINVALUE < 最小值…

Proxmox VE qm 方式一键创建Windows虚拟机

前言 实现qm 方式一键创建Windows虚拟机&#xff0c;提高效率。 qm 一键创建Windows虚拟机 以下实现在线下载镜像&#xff0c;创建虚拟机&#xff0c;安装系统需要自己手动安装哦&#xff0c;如果想实现全自动安装系统&#xff0c;建议部署自己的内网pxe server 系统参考各参…

Utilize webcam to capture photo with camera

1. Official Guide& my github Official course my github 2. Overcome Webcam js Error in Chrome: Could not access webcam link 直接把代码拷贝到本机的下述目录下 To ignore Chrome’s secure origin policy, follow these steps. Navigate to chrome://flags/#un…

【前端捉鬼记】使用nvm切换node版本后再用node -v查看仍然是原来的版本

今天遇到一个诡异的问题&#xff0c;使用nvm切换node版本&#xff0c;明明提示已经切换成功&#xff0c;可是再次查看node版本还是之前的&#xff01; 尝试了很多办法&#xff0c;比如重新打开一个cmd窗口、切换前执行nvm install version都没成功&#xff0c;直到找到这篇文章…

【计算机毕业设计】企业仓储管理系统——后附源码

&#x1f389;**欢迎来到我的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 一名来自世界500强的资深程序媛&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于…

【算法】双指针算法

个人主页 &#xff1a; zxctscl 如有转载请先通知 题目 1. 283. 移动零1.1 分析1.2 代码 2. 1089. 复写零2.1 分析2.2 代码 3. 202. 快乐数3.1 分析3.2 代码 4. 11. 盛最多水的容器4.1 分析4.2 代码 5. LCR 179. 查找总价格为目标值的两个商品5.1 分析5.2 代码 6. 15. 三数之和…

【攻防世界】web2(逆向解密)

进入题目环境&#xff0c;查看页面信息&#xff1a; <?php $miwen"a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";function encode($str){$_ostrrev($str);// echo $_o;for($_00;$_0<strlen($_o);$_0){$_csubstr($_o,$_0,1);$__ord($_c)1;…