Link to home
Start Free TrialLog in
Avatar of cheryl9063
cheryl9063Flag for United States of America

asked on

TSQL Help

I have an nvarchar field that looks like this
2220

I need to make it look like this
2,220

How?
Avatar of hyphenpipe
hyphenpipe
Flag of United States of America image

Does the data going into that field need to be formatted like that or the data pulled from that field in an output query need to be formatted like that?
Avatar of cheryl9063

ASKER

I need to update the data in the table to that
Avatar of Haver Ramirez
Haver Ramirez


SELECT CONVERT(varchar, CAST(987654321 AS money), 1)
That does not give me 2,220
create function make_number (@value varchar(40))
returns varchar(40)
as
begin
declare @o varchar(40)
set @o = ''
 while len(@value) > 3
  begin
   set @o = ',' + right(@value, 3) + @o
   set @value = substring(@value, 1, len(@value) - 3)
  end
return @value + @o
end
go
update table_name set field_name = dbo.make_number(field_name)
go
I need another way other that creating a function.. How about where len(field)=4? Would that work
SELECT CONVERT(varchar, CAST(2220 AS money), 1)
--2,220.00
SELECT substring(CONVERT(varchar, CAST(2220 AS money), 1),0, charindex('.',CONVERT(varchar, CAST(2220 AS money), 1)))
--2,220
ASKER CERTIFIED SOLUTION
Avatar of Haver Ramirez
Haver Ramirez

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial