我正在将 SQL Server 数据迁移到 Snowflake 并尝试将 Int 转换为 Decimal。但反应不是我所期望的。
在 SQL 中,如果您运行此查询 Select 1.0000
或 Select Cast(1 as Decimal(12,4))
,结果将是 1.000
。
如果我在 Snowflake 中做同样的事情,结果是 1。有没有办法修复它?
谢谢
答案 0 :(得分:1)
答案 1 :(得分:1)
选择 Cast(1 as 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 中是同义词。