代码之家  ›  专栏  ›  技术社区  ›  Jonathan Benn

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

  •  0
  • Jonathan Benn  · 技术社区  · 7 年前

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

    迄今为止完成的工作: 根据 CAST_EXPR documentation ,这是不可能的 CAST\U EXPR 。根据 numeric functions documentation ,数学函数,如 FLOOR 将返回相同类型的值。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Jonathan Benn    6 年前

    更新时间: 这个 numeric functions documentation 是正确的。

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

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

    如果要从 地板 函数,则必须调用 ceil(floor(fieldname))

    在NetWeaver系统上,您应该能够找到CD视图 demo_cds_sql_functions_num 和计划/报告 demo\u cds\u sql\u functions\u num 这有助于演示这些概念。可以使用调试器查看报表的变量 result 并确认我的发现。

        2
  •  1
  •   Florian    7 年前

    ceil 是否:

    cast(ceil(fieldname) as abap.int4)
    

    请注意 floor 不会的。

    推荐文章