您可以尝试将数字数据转换为整数,例如
SELECT AS_INTEGER(col) AS col
FROM yourTable;
您可以使用以下
TRUNCATE
或RTRIM
功能
TRUNCATE(Fieldname)
RTRIM(Fieldname,'.0')
3dp 是浮点数的打印方式,因此您可以 转换为数字
SELECT column_name::number FROM table
如果您的数据是字符串/变量类型,并且并非存储在列中的所有值总是干净地转换,则在 Snowflake 中您可能会遇到错误,使用
TO_NUMBER
或 ::number
形式,因此应使用 [TRY_TO_NUMBER][2]
形式。
老问题,但我想有些人仍然会在这里并犯我犯过的同样的错误。小心 RTRIM(Fieldname,'.0')。它还删除了末尾的零,而不仅仅是尾随零!如果您不想实现这一目标,一些选择是: trunc(值),round(值,0)。 如果你想真正理解请看例子。
select cast('1020.0' as varchar) as test_string,
trunc(to_varchar(test_string)) as remove_trailing_opt_1,
round(test_string,0) as remove_trailing_opt_2,
rtrim(test_string, '0.') as remove_all_end_zeros /* same as TRIM(test_string,'.0')
--- check that functions also work with decimal
,cast('1020.0' as decimal(10,2)) as test_decimal,
trunc(to_varchar(test_decimal)),
round(test_decimal,0),
rtrim(test_decimal, '0.') */