SAP ABAP中查询语法

本文介绍了在SAPABAP中执行复杂查询的方法,包括日期时间字段的筛选、内表操作、字段拼接与截取以及去除零填充。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SAP中ABAP的查询
一、日期和时间两个字段,比如要查询 2023/05/01 00:00:00到 2023/05/20 17:00:00的数据
DATA: lt_data  TYPE TABLE OF cdhdr.

SELECT * FROM cdhdr
WHERE CAST( concat( udate,utime ) AS NUMC( 14 ) ) > '20230501000000'
AND CAST( concat( udate,utime ) AS NUMC( 14 ) ) < '20230520170000'
INTO TABLE @lt_data.

二、两个字段拼接成一个字段放入内表栏位

TYPES: BEGIN OF ty_po,
  aufnr TYPE c LENGTH 16,
  END OF ty_po.

DATA: lt_po TYPE TABLE OF ty_po.

SELECT CAST( concat( auart,aufnr ) AS CHAR( 16 ) ) AS aufnr
       FROM aufk
       INTO TABLE @lt_po.

三、获取字段的后17位使用RIGHT,前17位使用LEFT

 SELECT a~matnr,
        a~werks,
        a~lgort
        CASE WHEN length( b~sgtxt ) > 17 THEN right( b~sgtxt ,17 )
             ELSE b~sgtxt
             END AS sgtxt
      FROM MSEG AS a
      INTO TABLE @DATA(lt_mseg).

四、去掉字段左边或者右边的零:左边(LTRIM),右边(RTRIM)

SELECT RTRIM( '1001100000','0' )  as num
       FROM aufk
       INTO TABLE @data(lt_po).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值