[Oracle] =?ISO-8859-2?Q?=A3=B1czenie_wierszy_z_zapytania_?==?ISO-8859-2?Q?w_jeden_string?=
kruk - 20-02-2006 14:09
[Oracle] =?ISO-8859-2?Q?=A3=B1czenie_wierszy_z_zapytania_?==?ISO-8859-2?Q?w_jeden_string?=
Na wstępie chciałbym przeprosić, bowiem wysłałem podobny post dwa dni temu przez Google ale jest on widoczy tylko na tamtej właśnie stronie, dlatego proszę się nie denerować, jeśli ktoś zobaczy go po raz drugi :)
Witam. Pracuje z bazą Oracle. Jedna z tablel ma strukturę podobną do przedstawionej poniżej. Nazwijmy ją tabelą ZGLOSZENIA :
ID| NR_ZGL | NR_LIN | TRESC ---------------------------------------------------- 1 | ZGL0001 | 1 | linia pierwsza zgłoszenia ZGL001 2 | ZGL0001 | 2 | linia druga zgłoszenia ZGL001 3 | ZGL0001 | 3 | linia trzecia zgłoszenia ZGL001 ... 8 | ZGL0004 | 1 | linia pierwsza zgłoszenia ZGL004 9 | ZGL0004 | 2 | linia druga zgłoszenia ZGL004
Czy ktoś mógłby mi pomóc połączyć poszczególne linie, dotyczące jednego zgłoszenia (o takiej samej wartośći pola NR_ZGL i posortowane po NR_LIN) w jeden string? Szukałem na google jakiegoś rozwiązania jednak nie udało mi się znależć nic zadowalajacego. Chciałbym w wyniku zapytania dostać powiedzmy coś takiego:
NR_ZGL | ? TRESC ? ----------------------------------- ZGL001 | linia pierwsza zgłoszenia ZGL001 \n linia druga ..
Wiem że dla MySQL istnieje funkcja GROUP_CONCAT(), za pomocą której można otrzymać zadowalający mnie wynik:
SELECT NR_ZGL, GROUP_CONCAT(TRESC ORDER BY NR_LIN DESC SEPARATOR '\n') FROM ZGLOSZENIA GROUP BY NR_ZGL
Czy w Oracle`u także znajdę coś podobnego? Być może ktoś spotkał się z podobnym problemem... Proszę o pomoc lub jakąś wskazówkę
pozdrawiam, Paweł Kruczyński
Noel - 20-02-2006 14:10
Użytkownik kruk napisał:
> > NR_ZGL | ? TRESC ? > ----------------------------------- > ZGL001 | linia pierwsza zgłoszenia ZGL001 \n linia druga .. > > Wiem że dla MySQL istnieje funkcja GROUP_CONCAT(), za pomocą której > można otrzymać zadowalający mnie wynik: > > SELECT > NR_ZGL, GROUP_CONCAT(TRESC ORDER BY NR_LIN DESC SEPARATOR '\n') > FROM > ZGLOSZENIA > GROUP BY > NR_ZGL > > Czy w Oracle`u także znajdę coś podobnego? Być może ktoś spotkał się z > podobnym problemem... Proszę o pomoc lub jakąś wskazówkę >
Create or replace function group_concat(fnr_zgl VARCHAR2) return VARCHAR2IS txt VARCHAR2(2000); BEGIN
FOR I IN ( SELECT TRESC FROM TABELA WHERE NR_ZGL = FNR_ZGL ORDER BY NR_LINII ) LOOP txt := txt||chr(10)||i.tresc; END LOOP; RETURN(txt); END; /
-- Tomek "Noel" B.
kruk - 22-02-2006 21:48
No i proszę .. :)
Noel, serdeczne dzięki!
pozdrawiam PK
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle 19g +Insert +Insert +Insert...
MSSQL Express czy Oracle Express
[Oracle, Toad] Zaladowanie obiektu w TOAD
[Oracle][Reports30] 10G nie dziala razem z Reports3.0
[Oracle] catalog.sql i catproc.sql - bledy
klient oracle (zmiana domyslna klienta oracla)
[oracle] [xml] XML na bazie istniejacej struktury ?
[Oracle] W jaki sposób skopiować całą zawartość schemy jednego użytkownika do nowo utworzonego użytkownika?
klient Oracle 10g SE a Windows 98 SE
Oracle Standard Edition One - czym sie rozni od wersji standard iexpress?
zanotowane.pldoc.pisz.plpdf.pisz.plown-team.pev.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|