CDS算术函数

DIV( ARG1 , ARG2 )

• 仅输入整数值
• (INT1,INT2,INT4,INT8,DEC,CURR,QUAN)
• 结果类型为ARG1,且总是四舍五入

MOD( ARG1 , ARG2 )

• 取余数
• 结果类型为ARG1,结果可能为负数

DIVISION( ARG1 , ARG2 ,DEC )

• 取ARG1除以ARG2的值,并保留DEC位的小数位数
• 结果类型带小数点后十进制的DEC,长度取决于ARG1类型
• 结果四舍五入

ABS( ARG )

• 返回ARG的绝对值,且总是四舍五入
FLOOR( ARG )
• 舍入到下一个较低的整数
• ARG>0,则趋于0;ARG<0,则远离0
• 例如:

floor(1.5) = 1.
floor(-1.5) = -2.

CEIL( ARG )

• 舍入到下一个更高的整数,和Floor相反
• 如果arg> 0,则远离0;如果arg <0,则趋于0

ROUND( ARG,POS )

• 其中,如果 POS 大于 0,则四舍五入到指定的小数位。
• 如果 POS 等于 0,则四舍五入到最接近的整数。
• 如果 POS 小于 0,则在小数点左侧进行四舍五入。
• 例如:

ROUND(3.19, 1) 将 3.19 四舍五入到一个小数位 (3.2)
ROUND(2.649, 1) 将 2.649 四舍五入到一个小数位 (2.6)
ROUND(-5.574, 2) 将 -5.574 四舍五入到两小数位 (-5.57)
ROUND(18.8, -1) 将 18.8 四舍五入到小数点左侧一位 (20)。这个参数-1表示取整到十位数。

CASE<选择判断处理>

• 例如:

@AbapCatalog.sqlViewName: 'ZMATH'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: '算术计算'
define view ZTST_MATH as select from mara {
 mara.mandt as Mandt,
 mara.matnr as Matnr,
 case 
    when ( mara.mtart = 'SERV' )
    then '01'
    else '02'
    end as Flag
} 

你可能感兴趣的:(ABAP语法,abap)