Problem s dotazem mozna hiearchickym
Milan Šorm
sorm na pef.mendelu.cz
Úterý Červenec 17 17:01:07 CEST 2001
Tue, Jul 17, 2001 ve 04:02:51PM +0200 Vladimir Naprstek napsal(a):
# Hierarchicky dotaz (SELECT level, od, do FROM vztahy START WITH od=1 CONNECT
# BY PRIOR do = od)
#
#---cut---
#
# K tomu, abychom urcili konec, musime omezit LEVEL jen na zaznamy se stoupajici
# hodnotou, t.j. jen prvni tri radky, a to bohuzel nevim jak. Oracle vraci cely
# strom a Vy potrebujete jen jednu vetev. Podle mne by resenim bylo takovyto
# dotaz prochazet procedurou a sledovat hodnotu LEVEL. Tak rozsekat vracena data
# na vetve a z kazde vzit prvni OD a posledni DO.
kdyz jsem se nad tim zamyslel, tak pro
1 -> 6
6 -> 8
8 -> 7
6 -> 21
dokazu
LEVEL|OD |DO
-----+-------+----------
1| 8| 7
2| 6| 8
3| 1| 6
1| 6| 21
2| 1| 6
a odtud tedy bych potreboval zachovat sloupec OD, akorat psat do DO porad
stejne cislo dokud level stoupa (dokud je LEVEL jednoho radku mensi nez
LEVEL dalsiho radku), tedy:
8 7
6 7
1 7
6 21
1 21
a bude to dobre. ale potrebuju to bez procedury. neexistuje neco jako
ROOT_OF() tj zjisteni korene pro prave probihajici vetev ? to by mi desne
pomohlo.
--milan
# P.S. Co se stane, bude-li vysledek nasledujici (po prvnim pruchodu)
# OD
# KONEC
# ------------
# 1
# 4
# 3
# 7
# 2
# 6
# Je mozne pokracovat takto?
# OD KONEC
# ------------
# 1
# 7
jestli chapu, tak
1 4
3 7
2 6
no 1 7 byt nemuze, to je pravda.
--milan
presto zatim diky
--milan
Další informace o konferenci Databases