雪花将 Int 转换为 Decimal

时间:2021-06-15 21:45:24

标签: sql tsql snowflake-cloud-data-platform snowflake-schema

我正在将 SQL Server 数据迁移到 Snowflake 并尝试将 Int 转换为 Decimal。但反应不是我所期望的。

在 SQL 中,如果您运行此查询 Select 1.0000Select Cast(1 as Decimal(12,4)),结果将是 1.000。 如果我在 Snowflake 中做同样的事情,结果是 1。有没有办法修复它?

谢谢

2 个答案:

答案 0 :(得分:1)

你可以使用

select to_number(1,12,4)

了解更多info

答案 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 中是同义词。