create function fn_testnum(@m money) returns varchar(20) as begin declare @s varchar(20),@r varchar(20) set @s=reverse(ltrim(ceiling(cast(@m as dec(28,4))))) while len(@s)>0 select @r=isnull(@r+',','')+left(@s,3), @s=stuff(@s,1,3,'') return reverse(@r) end go
declare @m money set @m=12345.67 select dbo.fn_testnum(@m) /* -------------------- 12,346
(1 行受影响) */ set @m=1234566545.67 select dbo.fn_testnum(@m) /* -------------------- 1,234,566,546