declare @num as numeric(18,5)     
set @num=0.12000  
select reverse(cast(cast(reverse(@num) as float) as varchar(50)))
select reverse(convert(float,reverse(@num)))
当@num>=1时以上两条都可以实现我要的结果,单@num在0.00000-0.99999时,以上两种方法就不行了,我的目的是去掉numeric类型字段后面无用的0哈。
环境:sql2000,所以各位回答时别用2005下的函数来回答啦:)
...

解决方案 »

  1.   


    declare @num as numeric(18,5)     
    set @num=0.12000  
    select cast(@num as float)
      

  2.   


    declare @num as numeric(18,5)     
    set @num=0.12000  
    select cast(cast(@num as float) as nvarchar(4))
      

  3.   

    declare @num as numeric(18,5)     
    set @num=0.12000  
    select cast(cast(@num as float) as nvarchar(50))
      

  4.   

    declare @num as numeric(18,5)     
    set @num=1.12000  
    select cast(@num as float)
    是不行的...
      

  5.   

    declare @num as numeric(18,5)     
    set @num=0.12001  
    select cast(cast(@num as float) as nvarchar(4))
    将 expression 转换为数据类型 nvarchar 时发生算术溢出错误。
    也不行...