在ABAP SQL中数值计算和字符串处理

1.算数表达式(Arithmetic Expressions)

SELECT FROM /DMO/FLIGHT
FIELDS SEATS_MAX,
    SEATS_OCCUPIED,
    SEATS_MAX - SEATS_OCCUPIED AS SEATS_AVAILABLE,
    ( CAST( SEATS_OCCUPIED AS FLTP ) * CAST( 100 AS FLTP ) ) / CAST( SEATS_MAX AS FLTP ) AS PERCENTAGE
WHERE CARRIER_ID = 'LH' AND CONNECTION_ID = '0400'
INTO TABLE @DATA(RESULT1).

OUT->WRITE( RESULT1 ).

在这里插入图片描述

2.调用数值类型方法(Numeric Functions)

SELECT FROM /DMO/FLIGHT
FIELDS SEATS_MAX,
    SEATS_OCCUPIED,
    ( CAST( SEATS_OCCUPIED AS FLTP ) * CAST( 100 AS FLTP ) ) / CAST( SEATS_MAX AS FLTP ) AS PERCENTAGE_FLTP,
    DIV( SEATS_OCCUPIED * 100, SEATS_MAX ) AS PERCENTAGE_INT,
    DIVISION( SEATS_OCCUPIED * 100, SEATS_MAX, 2 ) AS PERCENTAGE_DEC
WHERE CARRIER_ID = 'LH' AND CONNECTION_ID = '0400'
INTO TABLE @DATA(RESULT2).

OUT->WRITE( RESULT2 ).

在这里插入图片描述

3.字符串连接(CONCAT)

SELECT FROM /DMO/CUSTOMER
FIELDS CUSTOMER_ID,
    STREET && ',' && ' ' && POSTAL_CODE && ' ' && CITY AS ADDRESS_NORMAL,
    CONCAT( STREET, CONCAT_WITH_SPACE( ',', CONCAT_WITH_SPACE( POSTAL_CODE, UPPER( CITY ), 1 ), 1 ) ) AS ADDRESS_CITY_UPPER
WHERE COUNTRY_CODE = 'ES'
INTO TABLE @DATA(RESULT3).

OUT->WRITE( RESULT3 ).

在这里插入图片描述

4.字符串格式化

SELECT FROM /DMO/CARRIER
FIELDS CARRIER_ID,
    NAME,
    UPPER( NAME ) AS NAME_UPPER,
    LOWER( NAME ) AS NAME_LOWER,
    INITCAP( NAME ) AS NAME_INITCAP
WHERE CARRIER_ID = 'SR'
INTO TABLE @DATA(RESULT4).

OUT->WRITE( RESULT4 ).

在这里插入图片描述

5.字符串截取

SELECT FROM /DMO/FLIGHT
FIELDS FLIGHT_DATE,
    CAST( FLIGHT_DATE AS CHAR( 8 ) ) AS FLIGHT_DATE_RAW,
    LEFT( FLIGHT_DATE, 4 ) AS YEAR,
    RIGHT( FLIGHT_DATE, 2 ) AS DAY,
    SUBSTRING( FLIGHT_DATE, 5, 2 ) AS MONTH
WHERE CARRIER_ID = 'LH'
AND CONNECTION_ID = '0400'
INTO TABLE @DATA(RESULT5).

OUT->WRITE( RESULT5 ).

在这里插入图片描述


总结

打完收工。

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值