我正在将SQL Server数据迁移到Snowflake,并尝试将Int转换为Decimal。但反应并不是我所期望的。
在SQL中,如果运行此查询Select 1.0000
或Select Cast(1 as Decimal(12,4))
,结果将为1.000
。如果我在Snowflake中也这样做,结果是1。有办法解决它吗?
感谢
您可以使用
select to_number(1,12,4)
更多信息
选择Cast(1为Decimal(12,4((,结果将为1.000。如果我在Snowflake中也这样做,结果是1。有办法解决它吗
数字的表示并不重要。它很可能是一个客户端工具,显示它时没有小数点。
当涉及EXPLICIT强制转换时,数据类型将按请求设置,并且可以通过DESCRIBE RESULT:轻松确认
SELECT CAST(1 AS DECIMAL(12,4)) AS col;
DESCRIBE RESULT LAST_QUERY_ID();
-- name type kind null?
-- col NUMBER(12,4) COLUMN Y
DECIMAL和NUMBER是Snowflake中的同义词。