2016-05-04 2 views
0

У меня есть таблица, которая имеет следующие значения:Отображение значений столбцов в строке

case code id 
100 A10 1 
100 A11 2 
100 A12 3 
101 A11 4 
102 A10 5 

Мне нужно написать запрос, чтобы получить следующий вывод:

case code 
100 A10, A11, A12 
101 A11 
102 A10 

Любая помощь будет оценена. Благодарю.

+0

Взгляните на этот вопрос и ответы - http://stackoverflow.com/questions/273238/how-to-use-group-by-to -concatenate-strings-in-sql-server – Alexei

+0

Лучшая помощь - помочь себе. Google PIVOT или CROSSTAB – Adish

+0

Существует хорошая статья для этого квеста [здесь] (http://stackoverflow.com/questions/273238/how-to-use-group-by-to-concatenate-strings-in-sql-server) –

ответ

-1

Использование STUFF вы можете получить ожидаемый результат

DECLARE @Test Table([case] int, [code] varchar(20)) 
INSERT @Test([case],[code]) 
VALUES 
(100,'A10'), (100,'A11'), 
(100,'A12'), (101,'A11'), (102, 'A10') 

SELECT DISTINCT [case], 
STUFF((SELECT ', '+ code 
     FROM @Test T1 
     WHERE T1.[case] = T2.[case] 
     FOR XML PATH('')), 1, 1,'' 
    ) AS code 
FROM @Test T2 
+0

Некринированный дубликат метода в этом ответе: http://stackoverflow.com/a/5981860/1507566 –

+0

@TabAlleman: Использование STUFF с FOR XML PATH - это обычный шаблон в конкатенации строк для создания разделенных запятыми форматов. Более того, я использовал свой [старый ответ] (http://stackoverflow.com/a/33955969/2451726). Не согласны с вашим проголосованием. – Arulkumar

+2

Вместо того, чтобы отвечать на вопросы, которые уже заданы и отвечали на этом сайте, мы должны направлять новые запросы на дублированный вопрос, вместо того, чтобы загромождать сайт с большим количеством дубликатов. То, что вы сами уже ответили на этот вопрос и продублировали свой собственный ответ, только усиливает мою точку зрения. –

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