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)

结果正确。

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

posted @ 2009-11-24 10:02  西游  阅读(789)  评论(4编辑  收藏  举报