编程过程中根据需要,要取一个平方根的右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)
结果正确。
也许是系统进行了自动类型转换。需要手动强制转换一下。