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