将数字和小数转换为 INT

cast numbers and decimals into INT

我有 [funds] 以不同的格式显示,有些是小数,有些是数字:

Null
0.00
0.55
55
55555555555

等等

我试着用这个: ,CAST (REPLACE ([funds],'.','') AS INT) AS [funds]

但是遇到这个错误:

varchar 值“288294130100”的转换溢出了一个 int 列。

如何处理数字和小数的组合?

您可以将它们转换为 BIGINT。但是,当您转换为 BIGINT 时,小数位将会丢失。

SELECT cast(v as bigint) as bigvalue FROM (
VALUES
(Null)
,(0.00)
,(0.55)
,(55  )
,(55555555555)
,(288294130100)) as t(v)
bigvalue
NULL
0
0
55
55555555555
288294130100