0

在 CDS View 选择语句中,假设我有一列 type DEC,如何将其转换为 type INT

到目前为止所做的工作:根据CAST_EXPR文档,这是不可能的CAST_EXPR。根据数字函数文档,数学函数之类FLOOR的将返回相同类型的值。

4

2 回答 2

2

更新:数字函数文档是正确的。

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

另一方面,ceil(fieldname)将四舍五入到最接近的整数并将a 转换DECINT

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

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

于 2018-03-14T18:36:20.450 回答
1

ceil可以:

cast(ceil(fieldname) as abap.int4)

注意floor不会。

于 2018-03-27T12:56:22.650 回答