sql replace转换问题

编程过程中根据需要,要取一个平方根的右8位。

写法如下:

select right(replace(cast(sqrt(cast('01722011' as int)*0.12)as varchar(30)),'.',''),8)

可是结果却显示前6位数字。

后来在有位朋友的帮助下,改成:select RIGHT(CONVERT(BIGINT, sqrt(cast('01722011' as int)*0.12)*1000000000000)+'', 8)

结果正确。

也许是系统进行了自动类型转换。需要手动强制转换一下。

原文地址:https://www.cnblogs.com/xiyou110/p/1609245.html