Portál AbcLinuxu, 8. listopadu 2025 14:11
SELECT * FROM table WHERE LINENUM BETWEEN 100 AND 200;
nefunguje?
SELECT * FROM (
SELECT ROW_NUMBER() OVER(ORDER BY column1) LINENUM, column1, column2
FROM MyTable
ORDER BY column1
)
WHERE LINENUM BETWEEN 100 AND 200;
Každopádně bych potřeboval nějaké co nejlehčí řešení, protože ten původní mysql dotaz obsahuje i spojování tabulek a tak bych nerad aby byl výsledný dotaz nějaký ohromný. Našel jsem také řešení vypsat N řádků a pak pomocí MINUS odečíst to co nepotřebuju, ale to asi nebude zrovna optimální.
SELECT a, b, c
FROM
( SELECT a, b, c, ROWNUM rn
FROM
( SELECT a, b, c FROM RECORD
WHERE AVAIL='Y"
ORDER BY DATE DESC
)
WHERE ROWNUM <= 25
)
WHERE rn >= 21;
... nedá se nahradit WHERE ROWNUM <= 25 za WHERE rn <= 25?
select * from
(
select id, jmeno, prijmeni, narozen, ulice, mesto,
row_number() over (order by narozen, prijmeni, jmeno) as rnum
from lidi where narozen > to_date('31121999', 'DDMMYYYY')
) where rnum between :rec_from and :rec_to;
. Pouzivam to, jednodussi reseni jsem nenasel...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.