Diskuze: Fetch zaznamov od do v Oracle 10 s podmienkou
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Ja moc oracle nemam rad, protoze jednoduche veci se tam delaji slozitym kodem
Ale, na prvni pohled mne
zarazi tva konstrukce. Napis priklad celeho toho dotazu, a popis, co by mel
delat.
Totiz, obvykle chces (vybrat zaznamy podle podminky) a pak (filtrovat pro
listovani od-do).
Jenze, tve podminky jsou opacne, nejdriv (ocislujes tabulku), pak (oceses
tabulku na zaznamy 100-200) a pak aplikujes jeste dalsi (podminku). Cili,
domnivam se, ze tva logika je jakasi sporne pochybna
Navic, samozrejme, kdyz celou tabulku ocislujes a naklonujes, Take, nevim, jak moc se da pak pracovat s nejakymi indexy u toho klonu? Bez indexu to muze delat pomalu.
Treba by to melo vypadat nejak takto:
SELECT *
FROM sometable
ORDER BY name
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY
SELECT * FROM
(
SELECT t.*, Row_Number() OVER (ORDER BY name) MyRow FROM sometable t WHERE ... ORDER BY...
)
WHERE MyRow BETWEEN 10 AND 20;
Zobrazeno 3 zpráv z 3.