replace(left(cast(1240 as varchar),1),'')

解决方案 »

  1.   

    select replace(cast(1230 as varchar),'0','')
      

  2.   

    用类似下面的方法处理就行了:
    declare @str varchar(20)
    set @str=cast(102009800 as varchar)if right(@str,1)='0' set @str=left(@str,len(@str)-patindex('%0[1-9]%',reverse(@str)))
    print @str
      

  3.   

    用类似下面的方法处理就行了:
    declare @str varchar(20)
    set @str=cast(102009800 as varchar)if right(@str,1)='0' set @str=left(@str,len(@str)-patindex('%0[1-9]%',reverse(@str)))
    print @str
      

  4.   

    也可以将上面的处理语句写成函数:create function f_num2str(@i decimal(20,4))
    return varchar(20)
    as
    begin
    declare @re varchar(20)
    set @str=cast(102009800 as varchar)if right(@str,1)='0' set @str=left(@str,len(@str)-patindex('%0[1-9]%',reverse(@str)))
    return(@str)
    end
    go--调用函数
    select dbo.f_num2str(100),dbo.f_num2str(108300),dbo.f_num2str(1918)
      

  5.   

    select replace(cast(1230 as varchar),'0','')
      

  6.   

    zjcxc,这样做的话,把小数点前面的零也去掉了!能否只去小数点后尾部的零?
      

  7.   

    create function f_num2str(@i decimal(20,4))
    return varchar(20)
    as
    begin
    declare @re varchar(20)
    set @str=cast(102009800 as varchar)while right(@str,1)='0' 
    set @str=left(@str,len(@str) - 1
    return(@str)
    end
    go
      

  8.   

    select REVERSE(cast(REVERSE(23000) as int))