Strona 1 z 1

Łączenie tekstów z różnych wierszy przy grupowaniu

: śr sie 07, 2013 2:19 pm
autor: mactator
Witam,

posiadam tabelę, którą chcę zgrupować w kwerendzie za pomocą polecenia grupuj (w sql GROUP BY), i mam pytanie czy jest możliwe połączenie tekstów występujących w jednej kolumnie w całość, dla przykładu:

Kod: Zaznacz cały

1  e
1  r
1  r
2  a
2  t
2  a
 
na

Kod: Zaznacz cały

1  err
2  ata
 
W mySQL użyłbym GROUP_CONCAT, próbowałem xml path ale nie działał (albo źle zastosowałem). Nowa wersja hsql (2.3.0) pozwala również wykorzystać GROUP_CONCAT.

Korzystam z ostatniej wersji 3.4.1 openOffice.org na windows8.

PS jak ktoś zaproponuje lepszy temat to będzie on lepszy ;)

Re: Łączenie tekstów z różnych wierszy przy grupowaniu

: pn sie 12, 2013 3:19 pm
autor: Jan_J
W standardzie SQL nie ma funkcji budującej tekst z iteracji po wierszach. Choć w niektórych rozszerzeniach istnieje (np. we wspomnianym MySQL).
W systemach dopuszczających budowanie własnych funkcji można ją sobie napisać. W HSQLDB służy do tego polecenie CREATE FUNCTION (patrz http://hsqldb.org/doc/2.0/guide/sqlroutines-chapt.html). Wbudowana w Base wersja 1.8.x zdaje się (http://www.hsqldb.org/doc/1.8/guide/) nie mieć takiej możliwości. Kiedyś ludzie pisali klasy Javy, żeby doposażyć Base w dodatkowe funkcje.

O współpracy Base z HSQL 2.x obszernie pisze Andreas Säger aka Villeroy na forach anglojęzycznych. Patrz http://forum.openoffice.org/en/forum/vi ... 40&t=61155