DECLARE @maxinumValue DECIMAL(18,5) --控制的值
DECLARE @unitFormat VARCHAR(50) --单位
DECLARE @scale INT  --小数位
DECLARE @result VARCHAR(100) --结果值SET @maxinumValue = 19.80000 --控制的值
SET @unitFormat = '%' --单位
SET @scale = 2 --小数位select substring(cast(@maxinumValue as varchar(20)),1,  patindex('%.%',cast(@maxinumValue as varchar(20)))+2) + @unitFormat----------------------------------------------------------------------
19.80%(1 行受影响)

解决方案 »

  1.   


    DECLARE @maxinumValue DECIMAL(18,5) --控制的值
    DECLARE @unitFormat VARCHAR(50) --单位
    DECLARE @scale INT  --小数位
    DECLARE @result VARCHAR(100) --结果值SET @maxinumValue = 19.80000 --控制的值
    SET @unitFormat = '%' --单位
    SET @scale = 2 --小数位declare @sql varchar(1000)
    set @sql='SELECT ltrim(CAST('+CAST(@maxinumValue AS VARCHAR)+' AS DECIMAL(18,'+CAST(@scale AS VARCHAR)+')))+''%'' AS result'
    exec (@sql)/*
    result
    19.80%
    */
      

  2.   

    DECLARE @maxinumValue DECIMAL(18,5) --控制的值
    DECLARE @unitFormat VARCHAR(50) --单位
    DECLARE @scale INT  --小数位
    DECLARE @result VARCHAR(100) --结果值SET @maxinumValue = 19.80000 --控制的值
    SET @unitFormat = '%' --单位
    SET @scale = 2 --小数位select @result=substring(cast(round(@maxinumValue,@scale) as varchar(100)),1,CHARINDEX('.',@maxinumValue,1)+2)+@unitFormat
    print(@result)
    --结果如下
    19.80%
      

  3.   


    修改了下
    DECLARE @maxinumValue DECIMAL(18,5) --控制的值
    DECLARE @unitFormat VARCHAR(50) --单位
    DECLARE @scale INT  --小数位
    DECLARE @result VARCHAR(100) --结果值SET @maxinumValue = 19.80000 --控制的值
    SET @unitFormat = '%' --单位
    SET @scale = 2 --小数位select @result=substring(cast(round(@maxinumValue,@scale) as varchar(100)),1,CHARINDEX('.',@maxinumValue,1)+@scale)+@unitFormat
    print(@result)
      

  4.   

    DECLARE @maxinumValue DECIMAL(18,5) --控制的值
    DECLARE @unitFormat VARCHAR(50) --单位
    DECLARE @scale INT  --小数位
    DECLARE @result VARCHAR(100) --结果值SET @maxinumValue = 19.80000 --控制的值
    SET @unitFormat = '%' --单位
    SET @scale = 2 --小数位select @result = stuff(cast(@maxinumValue as varchar),charindex('.',cast(@maxinumValue as varchar))+3,len(100),'')+'%'
                    
    select @result
    /*
    19.80%
    */
      

  5.   

    如果 楼主 小数位不要做成 可配置的。。代码可如下:
    DECLARE @maxinumValue DECIMAL(18,5) --控制的值
    DECLARE @unitFormat VARCHAR(50) --单位
    DECLARE @scale INT  --小数位
    DECLARE @result VARCHAR(100) --结果值SET @maxinumValue = 19.80000 --控制的值
    SET @unitFormat = '%' --单位
    SET @scale = 2 --小数位
                   --
                   
    SELECT ltrim(cast(@maxinumValue AS DECIMAL(18,2)))+@unitFormat