Snowflake替代MYSQL FORMAT函数



我们将精度存储在数据库表中。我们想根据每种货币的精度对其金额进行四舍五入。在Mysql中,这可以通过使用FORMAT来完成,但我无法在Snowflake中完成。

例如在MYSQL中,CCD_ 1如果精度为3则返回2.340,如果精度为2则返回2.34。

这可以在Snowflake数据库中完成吗?

感谢

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);

假设您想格式化它以进行输出,那么最好的调用是:

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

文档中的最后一个例子演示了它的用途。

最新更新