如何将数值转成字符,要求:125.34 转成字符就是"125.34",可是125.00就转成"125",后面的".00"不要了,如何实现呢?
---------------
一个字段要记录公式,是字符型,记录的内容形如:
67 * (78.23+90) /20.6
其中的 67,78,90 都是从别的字段中取的,是数值型,有可能有小数点,也有可能没有小数点.
可是转成字符串后为:
67.00 * (78.23+90.00) / 20.6
这样不好看,我不想让67 显示成 67.00,90 显示成90.00
如何实现呢?

解决方案 »

  1.   

    --try
    DECLARE @s DECIMAL(18,2),@s1 DECIMAL(18,2)  
    SET @s=125.43
    SET @s1=125.00
    SELECT REPLACE(CAST(@s AS VARCHAR),'.00',''),REPLACE(CAST(@s1 AS VARCHAR),'.00','')
      

  2.   

    create function fn_test(@n numeric(18,12))
    returns varchar(32)
    begin
    declare @result varchar(32)
    select @result=reverse(stuff(reverse(@n),1,patindex('%[^0]%',reverse(@n))-1,''))
    if right(@result,1)='.'
    set @result=left(@result, len(@result)-1)
    return @result
    end
    goselect '125.00'=dbo.fn_test(125.00),'125.34'=dbo.fn_test(125.34), '125.3400'=dbo.fn_test(125.3400)drop function fn_test/*
    125.00                           125.34                           125.3400
    -------------------------------- -------------------------------- --------------------------------
    125                              125.34                           125.34(1 row(s) affected)
    */