Divs from Bangalore Ответов: 1

Как я могу объединить несколько строк с одним и тем же идентификатором в одну строку?


У меня есть стол:

ID |A |B |C
1 NULL DEF NULL
1 ABC NULL NULL
2 XYZ NULL NULL
3 IJK NULL NULL
3 NULL LMN NULL
3 NULL NULL PQR


Я хочу получить результат как
ID |A |B |C
1 ABC DEF NULL
2 XYZ NULL NULL
3 IJK LMN PQR


Что я уже пробовал:

Я пробовал CTE, но это не совсем дает мне тот же результат

CHill60

"Я пробовал CTE" ... затем опубликуйте код, который вы пробовали, чтобы мы могли увидеть, что с ним не так!

ZurdoDev

Что делать, если 1 имеет значения в A для обеих записей?

Divs from Bangalore

Такой ситуации не будет.Столбцы A,B и C будут иметь только одно значение для одного идентификатора.Просто они заселяются в разные ряды.Мой вопрос заключается в том, как отобразить его в одном ряду.

ZurdoDev

Тогда Решение 1 будет работать.

1 Ответов

Рейтинг:
11

CHill60

Просто используйте GROUP BY, например

select ID, MAX(A) AS A, MAX(B) AS B, MAX(C) AS C from #t
GROUP BY ID

Но! Как указала Серенити Новдев ... что делать, если у вас есть более 1 значения в A для Id = 1 ... MAX все равно дать вам нужный результат или вам нужно использовать другую агрегатную функцию? Только вы можете решить