Muszę połączyć poniższe dane
a b c
1 Text 22-03-2015
1 Text1 22-03-2015
2 Text2 24-05-2015
3 Text5 29-05-2015
1 Text11 23-03-2015
Oczekiwany wynik to
a b c
1 Text,text1 22-03-2015
1 Text11 23-03-2016
2 Text2 24-05-2015
3 Text5 29-05-2015
Wypróbowałem funkcję wm_concat i działa, ale nie mogę usunąć duplikatów z danych i użycia LISTAGG powoduje błąd
„Wynik połączenia ora-01489 jest zbyt długi w wyroczni”
błąd, ponieważ kolumny b zawierają wartości większe niż 4000 znaków.
Jakieś alternatywy oprócz tych 2 funkcji?
Odpowiedzi:
1 dla odpowiedzi № 1Możesz użyć LISTAGG
funkcja, jeśli jesteś Oracle 11g+
SELECT a, LISTAGG(b, " ") WITHIN GROUP (ORDER BY b) as b, c
FROM yourtable
GROUP BY a,c;