Łączenie wielu wartości w jeden ciąg

0

Hej,

Mam zaćmę jak dany problem rozwiązać i nie daje mi to spokoju. Mam na kartach towarowych atrybuty wielowartościowe, z pewnych względów potrzebowałbym wrzucić je jako jeden ciąg na wydruki, ale mam problem, przykładowy zbiór danych:

Towar atrybut
towar1 atrybut1
towar1 atrybut2
towar1 atrybut3
towar1 atrybut4
towar2 atrybut1

Potrzebowałbym powyższy przykład zaprezentować jako:

towar atrybut
towar1 atrybut1 / atrybut2 / atrybut 3/ atrybut4
towar2 atrybut1

Za bardzo nie wiem jak do tego tematu podejść, czy jedyna opcja to lecenia kursorem? Idealnie byłoby jakby po zapisie karty towarowej trigger sprawdzał czy wszystko gra i zapisywał w nowe pole wartości wg powyższego schematu.
Silnik bazy to SQL Server 2016

2

W MySQL-u można by zrobić GROUP_CONCAT (fiddle)

SELECT `towar`, GROUP_CONCAT(`atrybut`) as atrybut
FROM `table`
GROUP BY towar;

Google pokazuje różne wyniki imitowania tego w SQL Server (na przykład tutaj). STRING_AGG wydaje się najbardziej czytelny, ale jak widać dostępny dopiero od wersji 2017.

1

Wersję niżej można użyć takie coś . Działa bez problemu bo potrzebowałem ostatnio i się sprawdziło

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/56195835-748a-4fb9-8302-391b1dbc4e43/substitute-for-stringagg-in-sql-2016?forum=transactsql

1 użytkowników online, w tym zalogowanych: 0, gości: 1