在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 别名
5.concat 在sql链表数据的使用方法,一定要在左边
二、简单实例
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语句
第二个SQL语句展示
自适应添加前导零
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了
concat 在sql链表数据的使用方法,一定要在左边
SELECT * FROM RSEG
INNER JOIN BKPF
ON CONCAT( RSEG~BELNR, RSEG~GJAHR ) = BKPF~AWKEY
INTO TABLE @data(target).
好了通过实例的认证,我们基本掌握了这两个语法,今天的分享就到这了。
分享使我快乐,我是寒武青锋。
记得点赞哈