ABAP+如果在join的时候需要表1的字段某几位等于表2的字段的某几位,需要怎么做?

使用substring,

代码:SUBSTRING( C~KUNAG,5,6 ) = SUBSTRING( A~KUNNR,5,6 )

表明:C表的KUNAG字段的第5位开始,取6个字符,与C表的KUNNR字段的第5位开始,取6个字符,所对应的值相同。

一般可以用于需要连接的两个表中,一个表有前导零,另一个表没有前导零的时候使用,就可以不用去LOOP里面给其中一个表添加前导零了,但是没有试过效率哪个更高。

比如GT_ALV表里面没有前导零,后台表KNVV里面有前导零,这时不想去补充前导零,想直接在SELECT的时候截取或者补充前导零,如何做呢?

下面是完整的代码示例:

复制代码
SELECT DISTINCT C~KUNAG,A~BZIRK ,B~BZTXT
      FROM KNVV AS A
      RIGHT JOIN @GT_ALV AS C ON ( SUBSTRING( C~KUNAG,5,6 ) = SUBSTRING( A~KUNNR,5,6 )
      OR C~KUNAG = SUBSTRING( A~KUNNR,5,6 ) )
      LEFT JOIN T171T AS B ON A~BZIRK = B~BZIRK
      WHERE A~VKORG = @P_BUKRS
*      AND B~SPRAS = @SY-LANGU
      INTO TABLE @DATA(LT_T171T_INNER).

因为GT_ALV里面既有一些有前导零又有一些没前导零,所以用了一个OR

另外,写了一篇比较全面的SAP select查询的笔记,可移步查看:

【案例总结】简直绝了------非常全面的SELECT总结-CSDN博客

相关推荐
岳麓丹枫00136 分钟前
PostgreSQL 中 pg_wal 目录里的 .ready .done .history 文件的生命周期
数据库·postgresql
崔庆才丨静觅6 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
陌上丨7 小时前
Redis的Key和Value的设计原则有哪些?
数据库·redis·缓存
passerby60617 小时前
完成前端时间处理的另一块版图
前端·github·web components
AI_56787 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
掘了7 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅7 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
ccecw7 小时前
Mysql ONLY_FULL_GROUP_BY模式详解、group by非查询字段报错
数据库·mysql
JH30737 小时前
达梦数据库与MySQL的核心差异解析:从特性到实践
数据库·mysql
崔庆才丨静觅7 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端