Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 вопрос по xml path  [new]
RollBackCommit
Guest
Добрый день
Предположим есть простенькая табличка, в которой поле name содержит пробел
Хочется сконкатинировать поле name таким образом , чтобы разделителем был также пробел
declare @t table (name varchar(100))
declare @delim varchar(10)

set @delim='  '  ---разделитель пробел

insert into @t
select 'Вася' union all select 'Вася' 
union all  select ' '  ----присутствует пустая строка
union all select 'Петя' union all select 'Петя' union all select 'Маша'


select  name,(select distinct @delim+name
from @t
order by 1
for xml path('')) t
from @t

-----получается некрасиво
Вася	  Вася Маша Петя
Вася	  Вася Маша Петя
Петя	  Вася Маша Петя
Петя	  Вася Маша Петя
Маша	  Вася Маша Петя
	  Вася Маша Петя

При любом другом разделителе результат приемлимый, но хочется использовать пробел
Можно ли как то избавиться от символов ' ' при использовании разделителя пробел (без использования Replace)?
Спасибо
19 сен 11, 21:07    [11301622]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по xml path  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
RollBackCommit,

declare @t table (name varchar(100))
-- нафига оно?
--declare @delim varchar(10)
--set @delim='  '  ---разделитель пробел

insert into @t
select 'Вася' union all select 'Вася        ' 
union all  select ' '  ----присутствует пустая строка
union all select 'Петя     ' union all select '       Петя' union all select '     Маша' union all select '<>&tst'


SELECT  name
       ,(
         SELECT DISTINCT
                LTRIM(name) [data()]
         FROM   @t
         ORDER BY 1
        FOR
         XML PATH(''), TYPE
        ).value('.','varchar(max)') t
FROM    @t
19 сен 11, 21:25    [11301671]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по xml path  [new]
RollBackCommit
Guest
kDnZP спасибо!
19 сен 11, 21:37    [11301698]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить