2014-11-02 2 views
1

В SQL Server я использую функциональные возможности STUFF и XML для использования этой функции конкатенации строк. После процесса я должен обновить последний элемент записи.Объединение строк из таблицы

Моя таблица выглядит следующим образом:

id category 
------------- 
1  Pop 
1  Rock 
2  Pop 
3  Rock 

же ID категории должны получить присоединять с | разделителем

Pop|Rock| as Pop|Rock 

Это способ, которым я пытаюсь сделать. Но Stuff и XML убивают мою работу.

Любая помощь будет оценена по достоинству.

+1

Как выглядит ваш xml-материал? У вас есть пример запроса? –

+0

Показать свой код. Но [этот вопрос] (http://stackoverflow.com/questions/17591490/how-to-make-a-query-with-group-concat-in-sql-server) указывает, что 'STUFF, XML' является способом сделать это. – Barmar

+0

Отправьте свой конкатенационный статус первым. – gotqn

ответ

1

Ваш запрос выглядит примерно так?

select id, 
     stuff((select '|' + category 
       from table t2 
       where t2.id = t.id 
       for xml path ('') 
      ), 1, 1, '') as categories 
from (select distinct id from table t) t; 

Если вы не используете этот метод, есть и другие методы в SQL Server, но я думаю, что они будут иметь гораздо худшую производительность.

Смежные вопросы