damn... me neither....here was what i was going to offer... sheeesh 
Declare @a decimal(15,4)Select @a = 22123456789.01Select @a, case when charindex('.',@a)>=13 then ',' + left(reverse(left(reverse(left(@a,charindex('.',@a)-1)),12)),3) when charindex('.',@a)>=11 then left(reverse(left(reverse(left(@a,charindex('.',@a)-1)),12)),13-charindex('.',@a)+1) else '' end + case when charindex('.',@a)>=10 then ',' + left(reverse(left(reverse(left(@a,charindex('.',@a)-1)),9)),3) when charindex('.',@a)>=8 then left(reverse(left(reverse(left(@a,charindex('.',@a)-1)),9)),10-charindex('.',@a)+1) else '' end + case when charindex('.',@a)>=7 then ',' + left(reverse(left(reverse(left(@a,charindex('.',@a)-1)),6)),3) when charindex('.',@a)>=5 then left(reverse(left(reverse(left(@a,charindex('.',@a)-1)),6)),7-charindex('.',@a)+1) else '' end + case when charindex('.',@a)>=4 then ',' + reverse(left(reverse(left(@a,charindex('.',@a)-1)),3)) when charindex('.',@a)>=2 then left(reverse(left(reverse(left(@a,charindex('.',@a)-1)),3)),4-charindex('.',@a)+1) else '' endSelect @a = 24680.01Select @a, case when charindex('.',@a)>=13 then ',' + left(reverse(left(reverse(left(@a,charindex('.',@a)-1)),12)),3) when charindex('.',@a)>=11 then left(reverse(left(reverse(left(@a,charindex('.',@a)-1)),12)),13-charindex('.',@a)+1) else '' end + case when charindex('.',@a)>=10 then ',' + left(reverse(left(reverse(left(@a,charindex('.',@a)-1)),9)),3) when charindex('.',@a)>=8 then left(reverse(left(reverse(left(@a,charindex('.',@a)-1)),9)),10-charindex('.',@a)+1) else '' end + case when charindex('.',@a)>=7 then ',' + left(reverse(left(reverse(left(@a,charindex('.',@a)-1)),6)),3) when charindex('.',@a)>=5 then left(reverse(left(reverse(left(@a,charindex('.',@a)-1)),6)),7-charindex('.',@a)+1) else '' end + case when charindex('.',@a)>=4 then ',' + reverse(left(reverse(left(@a,charindex('.',@a)-1)),3)) when charindex('.',@a)>=2 then left(reverse(left(reverse(left(@a,charindex('.',@a)-1)),3)),4-charindex('.',@a)+1) else '' endCorey