我们的精度存储在数据库表中。我们希望将每种货币的数量按其本身的精度进行整整。在Mysql中,这可以通过使用格式来完成,但我无法在雪花中这样做。
例如,在MYSQL FORMAT(2.34, table.precision)中,如果精度为3,则返回2.340;如果精度为2,返回2.34。
这能在雪花分局完成吗?
谢谢
发布于 2020-05-11 08:06:15
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因此,您可以舍入到您想要的精度,或者构建一个格式字符串并格式化out。以及它是如何运作的。
因此,以下几点得到了加强:
SELECTTO_CHAR(2.34124544, '99.'|| RPAD('', r, '9') )
FROM VALUES (0),(1),(2),(3) v(r);发布于 2020-05-11 08:57:08
假设您希望将其格式化为输出,则最好的调用是:
https://docs.snowflake.com/en/sql-reference/functions/to_char.html -这允许输入格式字符串
文档中的最后一个示例演示了这个用法。
https://stackoverflow.com/questions/61724841
复制相似问题