declare @t table
(col float)insert @t
select   8.0000  union all
select   8.1000  union all
select   8.1200  union all
select   8.1230  union all
select   8.1235       
select case when len(parsename(cast(col as varchar),1))=1 and charindex('.',cast(col as varchar))>0 then
cast(col as varchar)+'0' 
else case when charindex('.',cast(col as varchar))=0 then cast(col as varchar)+'.00'
else cast(col as varchar) end end as col from @tcol                               
--------------------------------- 
8.00
8.10
8.12
8.123
8.1235(所影响的行数为 5 行)

解决方案 »

  1.   

    谢谢!我已经做出来了!因为在数据库中'单价'的数据类型为:decimal(10,4)所以还要再转换一次即可!
    case when len(parsename(cast(convert(float ,col) as varchar),1))=1
     and charindex(''.'',cast(convert(float,col ) as varchar))>0 then
     cast(convert(float,col ) as varchar)+'0'
     else case when charindex(''.'',cast(convert(float,col ) as varchar))=0
     then cast(convert(float,col ) as varchar)+'.00'
     else cast(convert(float,col ) as varchar) end end as col from @t现在就给分!