我们将精度存储在数据库表中。我们想根据每种货币的精度四舍五入。在Mysql中,可以使用FORMAT完成此操作,但是我无法在Snowflake中执行此操作。
例如,在MYSQL FORMAT(2.34, table.precision)
中,如果精度为3,则返回2.340,如果精度为2,则返回2.34。
这可以在Snowflake db中完成吗?
谢谢
答案 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-这允许输入格式字符串
文档中的最后一个示例演示了用法。