我们将精度存储在数据库表中。我们想根据每种货币的精度对其金额进行四舍五入。在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-这允许输入格式字符串
文档中的最后一个例子演示了它的用途。