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博客

相关推荐
用户2181697049301 小时前
Flutter(四)Dart语法 空安全 运算符 流程控制
前端
许彰午1 小时前
政务督办的分合模式:主办协办的并发审批
前端·javascript·政务
用户69371750013841 小时前
AI时代,程序员该往哪走?
前端·后端
ttwuai1 小时前
GoFrame 后台日志清空失败:无 WHERE 删除为什么被拦住
前端·golang
易筋紫容1 小时前
创建型模式:对象的诞生艺术
开发语言·前端·javascript
每天都要进步哦2 小时前
SQL单行函数详解:字符、数字、日期、转换与通用函数全解析
数据库·mysql
不剪发的Tony老师2 小时前
VeloxDB:一款免费开源的轻量级数据库管理工具
数据库·sql
dotnet902 小时前
批量生成所有表的修改脚本
数据库·sql·oracle
半句唐诗2 小时前
我是如何通过 Access Token 成功发布第一个 npm 包的
前端·npm·node.js
@Mike@2 小时前
06-数据库学习笔记(存储模型与数据压缩)
数据库·笔记·学习