在CDS View select语句中,如何将DEC类型转换为INT类型?

时间:2018-03-14 17:23:05

标签: data-conversion netweaver cds

在CDS View select语句中,假设我有一个DEC类型的列,如何将其转换为INT类型?

到目前为止完成的工作:根据CAST_EXPR documentationCAST_EXPR无法做到这一点。根据{{​​3}},像FLOOR这样的数学函数将返回相同类型的值。

2 个答案:

答案 0 :(得分:2)

更新: numeric functions documentation是正确的。

代码floor(fieldname)会将DEC(X,Y)(其中Y > 0)转换为DEC(X,0)。基本上,floor从字段中删除小数位而不更改其类型。

另一方面,ceil(fieldname)将向上舍入到最接近的整数DEC转换为INT

如果您想从floor函数中获取整数,则必须调用ceil(floor(fieldname))

在NetWeaver系统上,您应该能够找到有助于演示这些概念的CDS视图demo_cds_sql_functions_num和程序/报告demo_cds_sql_functions_num。您可以使用调试器查看报告的变量result并确认我的发现。

答案 1 :(得分:1)

ceil这样做:

cast(ceil(fieldname) as abap.int4)

请注意floor赢了