ďťż
 
[Oracle] =?ISO-8859-2?Q?=A3=B1czenie_wierszy_z_zapytania_?==?ISO-8859-2?Q?w_jeden_string?= ďťż
 
[Oracle] =?ISO-8859-2?Q?=A3=B1czenie_wierszy_z_zapytania_?==?ISO-8859-2?Q?w_jeden_string?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • own-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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com