tsql - SQL Server : coalesce, the part of string is missing -


i have code:

declare @results varchar(500)  select      @results = coalesce(@results+', ', '') + convert(varchar(12),k.t1) (     select          '('+cast(count(distinct(g.roomid)) varchar) + ') '+ rt.classname t1              db_pms.guests g         left join db_pms.roomtypes rt              on rt.roomtypeid=g.roomtypeid              g.groupid = 47 ,          g.status >= 0     group          g.roomtypeid,         rt.classname ) k  select @results results 

the part

select      '('+ cast(count(distinct(g.roomid))as varchar) + ') '+ rt.classname t1      db_pms.guests g     left join db_pms.roomtypes rt          on rt.roomtypeid=g.roomtypeid     g.groupid = 47 ,      g.status >= 0 group      g.roomtypeid,     rt.classname 

returns

(1) Люкс (4) Полулюкс (2) Стандарт dbl (6) Стандарт twn (1) Стандарт+ twn 

and after using

select @results = coalesce(@results + ', ', '') +  convert(varchar(12),k.t1) 

i

(1) Люкс (4) Полулюкс (2) Стандарт (6) Стандарт (1) Стандарт 

as can see part of string column missing. can fix it?

your varchar(12) small hold results, due way mysql (and sql server) counts length varchar. example, running query:

select length( 'Стандарт twn' ) 

will give length of 20! need increase length, , fine.

sql fiddle showing results: http://sqlfiddle.com/#!9/9eecb7d/5661/0

in sql server may wish consider use of nvarchar well.


Comments

Popular posts from this blog

facebook - android ACTION_SEND to share with specific application only -

python - Creating a new virtualenv gives a permissions error -

javascript - cocos2d-js draw circle not instantly -