ABAP SQL 拼字段(concat),截取字段的用法(substring)新增自定义字段( CAST)添加前导零(LPAD)

在SQL语句中,有时候会有需要拼接字段或者是截取字段,那我们如何实现呢。
一、干货
1.拼接字段
第一种: concat( A , 字段 ) AS 别名 — A 可以为自定义字段
第二种: ( C && B ) AS 别名 ---- 注意,B与C都是需要为char 类型才能使用这个

2.截取字段
substring( fldate,1,4 ) AS fldate,

3.添加字段: CAST( planetype AS CHAR( 20 ) ) AS 别名

4.自适应添加前导零 :lpad( 字段 , 10 ,‘0’ ) AS 别名
二、简单实例

SELECT carrid,   "航线
       connid,   "航班号
       fldate,   "日期
       planetype "飞机类型
  FROM sflight
  WHERE connid = '1'
  INTO TABLE @DATA(lt_sflight).

cl_demo_output=>display( lt_sflight ).

SELECT carrid,   "航线
       connid,   "航班号
       substring( fldate,1,4 ) AS fldate,   "日期截取年份
      ( 'CHAR类型拼接' && planetype  ) AS con, 
       concat(  'CONCAT拼接'  , planetype ) AS planetype
  FROM sflight
 WHERE connid = '1'
  INTO TABLE @DATA(lt_sflight_contrast).

cl_demo_output=>display( lt_sflight_contrast ).

另外:新增或者强转类型CAST

SELECT carrid,   "航线
       connid,   "航班号
       substring( fldate,1,4 ) AS fldate,   "日期截取年份
      CAST(  planetype AS CHAR( 20 ) ) AS con, "把planetype的值取出来,放在 con字段中。con字段为 CHAR 类型,长度为20
        CAST( @space AS CHAR( 13 ) ) AS zchar "新增为char 13的字段
  FROM sflight
 WHERE connid = '1'
  INTO TABLE @DATA(lt_sflight_contrast).

结果展示
第一sql语句
ABAP SQL 拼字段(concat),截取字段的用法(substring)新增自定义字段( CAST)添加前导零(LPAD)_第1张图片
第二个SQL语句展示
ABAP SQL 拼字段(concat),截取字段的用法(substring)新增自定义字段( CAST)添加前导零(LPAD)_第2张图片
自适应添加前导零

SELECT carrid,   "航线
       connid,   "航班号
       lpad( connid , 10 ,'0' ) AS connid_0 "在前面添加前导零,填充到总长度为10为止
  FROM sflight
  INTO TABLE @DATA(lt_LPAD).
IF sy-subrc = 0.
  cl_demo_output=>display( lt_LPAD ).
ENDIF.

结果:connid_0 字段10的长度,填充满0了
ABAP SQL 拼字段(concat),截取字段的用法(substring)新增自定义字段( CAST)添加前导零(LPAD)_第3张图片

好了通过实例的认证,我们基本掌握了这两个语法,今天的分享就到这了。
分享使我快乐,我是寒武青锋。
ABAP SQL 拼字段(concat),截取字段的用法(substring)新增自定义字段( CAST)添加前导零(LPAD)_第4张图片
记得点赞哈

你可能感兴趣的:(ABAP,sql,数据库)