SQL - объединить несколько строк в 1 при объединении
Итак, у меня есть 2 таблицы, которые выглядят так:
MetaData
Id | Value
---------------------
1 | 5
1 | 6
2 | 6
Уважать
Value | Text
---------------------
5 | Car
6 | Truck
Мне нужен запрос, чтобы вытащить Id из MetaData и текст из Lookup, например,
Id | Text
---------
1 | Car, Truck
2 | Truck
Любые идеи о том, как я могу это сделать? Спасибо!
1 ответ
В SQL Server 2017 вы бы использовали string_agg()
:
select id, string_agg(l.test, ', ')
from metadata m join
lookup l
on m.value = l.value
group by m.id;
В более ранних версиях это сложнее. Вы можете Google "Агрегация строк SQL Server" и получить множество примеров того, что делать.