Конкатенация значений выборочных строк с использованием STUFF - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь объединить значения в одну строку, но только если EEID одинаков. Я знаю, как объединять значения с помощью Stuff, но не могу заставить его работать только с выборочными записями.
Для приведенной ниже таблицы я хочу только объединить eeid = 690.

Мой результат должен быть:

   ('10218', '12321')

   declare @t table(companyid int, eeid int, claimid int)
   insert into @t
   values(11, 690, 10218),
   (11, 690, 12321),
   (11, 707, 21822),
   (11, 321, 21321)

   select * from @t

   select  stuff((select ',' + cast(claimid as varchar(max)) 
                from @t
                for xml path('')),1,1,'')

1 Ответ

0 голосов
/ 17 марта 2020

Вам нужен коррелированный пункт:

select e.eeid,
       stuff((select ',' + cast(claimid as varchar(max)) 
              from @t t
              where t.eeid = e.eeid
              for xml path('')
             ), 1, 1, ''
            )
from (select distinct eeid from @t) e
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...