我有一个带有 .0 数字的 varchar 列
这一列既有数值数据也有非数值数据。
我首先尝试将数据类型转换为整数,但由于存在非数字数据类型,所以它不会让我。
如何删除 .0(从所有带有 .0 的数字中删除)?
所以,例如,100.0 应该是 100
我没有尝试使用 select、cast 或 truncate,因为我需要实际修改现有数据。
谢谢。
最佳答案
由于该列同时包含数字和非数字数据,因此仅检查它是否以 '.0'
结尾是不够的。
您还应该检查它是否是一个数值,这可以通过 TRY_CAST()
来完成。 :
UPDATE tablename
SET col = LEFT(col, LEN(col) - 2)
WHERE col LIKE '%.0' AND TRY_CAST(col AS FLOAT) IS NOT NULL
参见 demo .
关于sql-server - 在 varchar 数据类型上替换 .0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68459955/