hierarchie

Jan Serak sherry na pikebo.cz
Čtvrtek Červen 22 14:43:06 CEST 2000


Karel Zak wrote:
> 
>  Zdar,
> 
> potrebuji udelat v tabulce hierarchii radek, napr:
> 
>         zvire
>          - pes
>             - vlcak
>             - doga
>          - papousek
>             - andulka
> 
>  Celkem logicky by to slo udelat vazbou hierId = parentId, todle ale dost
> narazi na problem jak to vySELECTovat v pozadovanem poradi v jednom dotazu
> pokud dany SQL stroj neumoznuje rekurzni zpracovani (to ma pokud vim umi jen
> oraclovske WALK TREE --- nebo jak se to jmenuje).

Obavam se, ze pokud samotny SQL parser neumi rekurzi, tak to na jediny SELECT
rozhodne nepujde. Jeste je jakasi nadeje v podobe proceduralni nadstavby
a stored procedures. V takovem pripade mohu napsat funkci

	function path(o,g) boolean;

ktera zjisti, zda existuje cesta z o do g. Tu pak mohu pouzit pro vyber
podstromu:

	select * from zvirena where path(id,'pes');

Pozadovane trideni vsak z toho stejne nevznikne.

Jinak: chybejici rekurze je duvod, proc ciste SQL (norma SQL92?) neni uplny
jazyk.

						Jan Serak


Další informace o konferenci Databases