SQL - Как я могу сгруппировать элементы по значению в другом столбце? - PullRequest
0 голосов
/ 11 января 2019

Рассмотрим приведенный ниже набор данных. Как объединить столбец 2 в одну строку и разделить столбец 2 на отдельные столбцы ИЛИ один столбец? Я покажу, что у меня есть, против того, что мне нужно .. Спасибо.

Вот что у меня сейчас есть:

column 0, column 1 , column 2
1       ,  Dog      , Hello 
1       ,  Dog      , I like dogs
2       ,  Koala    , fur
2       ,  Koala    , cuddly
2       ,  Koala    , lazy
3       ,  Puppy    , small
3       ,  Puppy    , adolescent
4       ,  Spaghetti, taste good
4       ,  Spaghetti, italy
4       ,  Spaghetti, mama mia
4       ,  Spaghetti,fugeddaboudit         

и вот что я хочу (Игнорируй пробел, я понятия не имею, что случилось)

column 0, column 1 , column 2
1       ,  Dog      , Hello , I like dogs    
2       ,  Koala    , fur, cuddly, lazy
3       ,  Puppy    , small, adolescent
4       ,  Spaghetti, taste good, Italy, mama mia, fugeddaboudit 

1 Ответ

0 голосов
/ 11 января 2019

Вам необходимо использовать функцию TSQL STUFF. Попробуйте этот запрос. Отлично работает на SQL Server.

   SELECT [column0]
  ,[column1]
  ,[column2] = STUFF((SELECT ',' + [column2] 
          FROM [tablename] t1
          WHERE t1.[column0] = t2.[column0]
          FOR XML PATH (''))
         , 1, 1, '') from [tablename] t2
GROUP BY [column0]
  ,[column1]
...