2014-11-18 2 views
1

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

img

Вопрос заключается в том, что я хотел бы, чтобы отображаться таким образом:

Medication Review | Allergies, CAM, Diet Supp, 

Имея одну представляющую проблему и все вторичные проблемы в одной строке, а не так, как сейчас.

Любая помощь была бы замечательной! Благодаря!

+0

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

+0

Если вы используете MySQL, вы можете использовать 'GROUP_CONCAT', но это не стандартный SQL, поэтому он недоступен везде. Кроме того, «COALESCE» плохо назван (IMO) и не то, что вы ищете. – dan08

+0

Думаю, «PIVOT» может быть полезен и здесь. Подход Гордона работает так же хорошо. Просто добавление опций –

ответ

1

Если вы используете SQL Server, вы можете сделать это:

SELECT DISTINCT t1.presenting_problem, 
    STUFF(
     (SELECT ', ' + t2.secondary_problem 
      FROM tableName t2 
      where t1.presenting_problem = t1.presenting_problem 
      FOR XML PATH ('')) 
      , 1, 1, '') AS secondary_problems 
from tableName t1; 
+1

Спасибо! Это действительно помогло! –

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