Вопрос:

Как выбрать DISTINCT с помощью ORDER BY и FOR XML в SQL Server

sql sql-server

309 просмотра

1 ответ

11 Репутация автора

Мне нужно найти другой вопрос, чтобы их задавали по разным удостоверениям личности. Если один и тот же вопрос задают несколько раз, мне нужен только один раз. Я использую SQL-сервер. Вот мой пример -

ID         Orderid               Question
1           1                    aaa
1           2                    bbb
1           2                    bbb
1           3                    ccc
1           3                    ccc
1           4                    ddd
1           5                    eee
2           1                    klm
2           2                    pqr
2           3                    abc
2           3                    abc
2           4                    ttt
2           5                    fff

Я хочу 2 строки, только с отдельными вопросами для каждого идентификатора, и порядок вопросов должен быть упорядочен по orderid

ID         Question
1          aaa,bbb,ccc,ddd,eee
2          klm,pqr,abc,ttt,fff
Автор: kbs Источник Размещён: 22.08.2016 09:11

Ответы (1)


3 плюса

876751 Репутация автора

Кажется, вы понимаете, какую функциональность вам нужно использовать. Вам просто нужно собрать это вместе:

select i.id,
       stuff((select ',' + question
              from t t2
              where t2.id = t.id
              group by question
              order by min(orderid)
              for xml path ('')
             ), 1, 1, ''
            ) as question
from (select distinct id from t) i;
Автор: Gordon Linoff Размещён: 22.08.2016 09:13
Вопросы из категории :
32x32