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" и получить множество примеров того, что делать.

Другие вопросы по тегам