Posted By: snake (keeping on the sunny side) on 'CZdatabases'
Title:     Re: between problem
Date:      Tue Jul 18 20:39:04 2000

> Mam za ukol vyhledat jista data, ktera jsou identifikovana svym poradovym 
> cislem. Toto cislo je indexovano.
> mam dane rozsahy, napr. 136100108 - 136100200, potom par udaju vynechanych a
> zase cisla...a techto rozmezi je hrozna spousta. Nevim, jak to vsechno zadat

Cim jsou ty rozsahy identifikovany? Jsou znamy uz na zacatku, pri sestavovani 
te aplikace (chces je do ni "zadratovat"), nebo se budou menit?

> do jednoho selektu.
> kdyz dam
> 
> select dodavatele.jmeno 
> from dodavatele
> where dodavatel.id between 136100108 and 136100200 or
>       dodavatel.id between 136100205 and 136100224 or
>       dodavatel.id between 136100232 and 136100318
> atd atd atd  - Tak vyvojove prostredi zatuhne pri kladeni dotazu na server. 
> Oracle si s tim pravdepodobne neporadi... 

Napis Oraclum. Na takovyhle maily prej vubec ani neodpovidaj;-)

Mne napada jedno jediny reseni: udelat tabulku, kde ty rozsahy budou - a v 
dotazu pak bude misto te silene "or/and" klauzule jen exists (select id1,id2 
from pomocna_tabulka where id1<id and id2>id).

Problem je v tom, ze takovahle tabulka musi existovat a Ty na ni musis mit 
prava. Vytvaret ji nemusis, ale osobne mi prijde nejjednodussi si jeji 
existenci proste "vydupat" (kdyz dole pises, ze na to pravo nemas). Tento 
dotaz by Oracle slozit nemel:-). Navic to ma samozrejme tu vyhodu, ze je
opakovane pouzitelny bez zadneho zasahu - a navic i lehce modifikovatelny, 
narozdil od "zadratovani do aplikace".

> Techto skupin je hrozna spousta, problem je v tom, ze tuhle 
> konstrukci chci pouzivat v selectu, ktery scita desitky tisic podpolozek 
> dohromady, takze rozkouskovat to na jednotlive skupiny neni mozny. A
> potrebuju to udelat v Oraclu v SQL.
> 
> Nenapada vas nekoho, jak ten select zkonstruovat? (nemuzu si vytvaret nove 
> tabulky:( ) 

Jestli je tohle neprekonatelnej problem, asi jsem Ti nepomohl:-(. Sorry...

snake

Search the boards