Połączenie rekordów w jeden string

0

Czy w informixie istnieje łatwy sposób na połączenie kilku rekordów w jeden string? Dodatkowo wartości rozdzielane jakimś znakiem.

Mając tabelę:

id imie
1 Jacek
1 Marta
2 Maciek
2 Lukasz
3 Ola

chciałbym aby wynikiem SQL były rekordy:

id imie
1 Jacek,Marta
2 Maciek,Lukasz
3 Ola
0

A możesz podzielić się z nami po co chciałbyś coś tak dziwnego zrobić?

0

Nic w tym dziwnego, czasem tak trzeba dane zaprezentować.
Nie wiem nic o Informixie ale spróbuj tak połączyć dane w jeden wiersz:
Działa w SQLServerze.

 
DECLARE @List VARCHAR(1000)
SELECT @List = COALESCE(@List+', ' ,'') + t.imie
FROM Tabela t

SELECT @List
0

Bo mam kod, który robi eksporty pewnych tabel(warstw) - metoda przyjmuje SQLa, który mówi co eksportować. Nie chce robić jednego ifa w środku metody, żeby akurat dla tej jedynej sytuacji tworzył/eksportował dane inaczej.

W SQLu, który przekazuje jest łączenie tabel, no ale w drugiej tabeli jest relacja jeden do wielu - dlatego takie coś jest mi potrzebne ;P

0

W SQL Server jest taki mechanizm, kiedyś musiałem skorzystać i działa: http://sqlandme.com/2011/04/27/tsql-concatenate-rows-using-for-xml-path/
Informix'a nie widziałem na oczy ale idąc podobnym tokiem po googlach to może rozwiązanie wchodzi w standard SQL: http://www.kodyaz.com/articles/concatenate-using-xml-path.aspx

0

A co sie stało z group_concat? Toż to specjalnie do tego napisana funkcja
select id, group_concat(imie separator ", ") from tabela group by id

0

Ha na stackoverflow jest dokładnie ten sam problem z odpowiedzią: http://stackoverflow.com/a/545672/1387438

0

Wszystko fajnie ale group_concat nie ma w informixie, a te ze stacoverflow chyba tez nie nadaja sie do informixa :)

Jakby nie było informix nie jest najfajniejszy, a problem rozwiązałem trochę inaczej, nie opierając się na SQLu.

Dzięki za wszystkie odpowiedźi.

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