declare @t table(id int,num decimal(18,2))
insert @t values(1,0.5)
insert @t values(1,1.5)
insert @t values(1,1.15)select *,convert(float,num),convert(decimal(18,4),num) from @t

解决方案 »

  1.   


    declare @num as numeric(11,10) 
    set @num =5.1236 
    select @num 
    select left(@num,charindex('.',@num)+charindex('.',cast(reverse(@num) as numeric(14,9)))-1)
      

  2.   

    declare @re numeric(19,4)
    set @re=3.411232
    if (select right(@re,4))=0
    select reverse(stuff(reverse(@re),1,4,''))
    if(select right(@re,3))=0
    select reverse(stuff(reverse(@re),1,3,''))
    else if(select right(@re,2))=0
    select reverse(stuff(reverse(@re),1,2,''))
    else if(select right(@re,1))=0
    select reverse(stuff(reverse(@re),1,1,''))
    else
    select @re
      

  3.   


    declare @num as numeric(11,10) 
    set @num =5.1236 
    select reverse(cast(cast(reverse(@num ) as float) as varchar(50)))