雪花替代MYSQL FORMAT函数

时间:2020-05-11 07:59:33

标签: snowflake-cloud-data-platform

我们将精度存储在数据库表中。我们想根据每种货币的精度四舍五入。在Mysql中,可以使用FORMAT完成此操作,但是我无法在Snowflake中执行此操作。

例如,在MYSQL FORMAT(2.34, table.precision)中,如果精度为3,则返回2.340,如果精度为2,则返回2.34。

这可以在Snowflake db中完成吗?

谢谢

2 个答案:

答案 0 :(得分:1)

SELECT 
    2.34124544 AS f
    ,round(2.34124544, r) 
    ,'99.'|| RPAD('', r, '9') AS form
    ,TO_CHAR(f,form)
FROM VALUES (0),(1),(2),(3) v(r);

给予:

F           ROUND(2.34124544, R)    FORM      TO_CHAR(F,FORM)
2.34124544  2.00000000              99.       2.
2.34124544  2.30000000              99.9      2.3
2.34124544  2.34000000              99.99     2.34
2.34124544  2.34100000              99.999    2.341

因此,您可以舍入到所需的精度,也可以构建格式字符串并格式化输出。以及它的工作方式。

因此进行了整理:

SELECTTO_CHAR(2.34124544, '99.'|| RPAD('', r, '9') )
FROM VALUES (0),(1),(2),(3) v(r);

答案 1 :(得分:0)

假设您要格式化输出格式,最好的选择是:

https://docs.snowflake.com/en/sql-reference/functions/to_char.html-这允许输入格式字符串

文档中的最后一个示例演示了用法。