Łączenie wielu wierszy w jeden

Łączenie wielu wierszy w jeden
SW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 26
0

Proszę o pomoc jak połączyć kilka wierszy w jeden.

Kopiuj
select
coalesce(MIEJSCE + ' -> ', '')
from
TRASY
where
NUMER = 1

Wynikiem są 4 wiersze, natomiast ja chciałbym wyświetlić to jako jeden wiersz i oddzielić poszczególne rekordy ' ->'
Znalazłem rozwiązanie polegające na deklaracjach i zapętleniu select, ale preferowałbym rozwiązanie bez tego.

woolfik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1611
2

taki przykład na szybko:

Kopiuj
select STUFF((SELECT  ','+ cast(e.MIEJSCE as varchar(50)) FROM TRASY e where NUMER = 1 FOR XML PATH('')),1 ,1, '') miejsca

https://stackoverflow.com/questions/31211506/how-stuff-and-for-xml-path-work-in-sql-server

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3892
0

Jeżeli najnowszy SQL to masz funkcje string-agg

Jeśli nie to obejścia w dtylu tego co podał woolfik, lub wykorzystanie CLR

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.