samozrejme v nadselekte uz je hodnota dostupna..
Ten posledny osdstavec je trochu popleteny :)
rownum je iba v Oracle, a inkrementuje sa s rastucim resultsetom (ked je splnena podmienka pre nejaky zaznam), takze v tom pripade naozaj vsetko ine ako rownum <= x je nezmyslel (este rownum = 1 ma zmysel)
row_number() je analyticka funkcia tak v Oracle a v Postgre, a tam je jedno ake predikaty na nu aplikujeme (v nadselekte).. - inac tato funkcia nie je v oracli lepsia z hladiska vykonu pre implementaciu pagingu ako rownum, pretoze sa vykona nad celym resultsetom, kym rownum umoznuje zastavit ziskavenie riadkov po nejakom pocte (STOPCOUNT optimalizacia),.
Priklad pagingu v oracle (ano, vyzera to hnusne :))
SELECT ename, sal, deptno FROM (
SELECT ename, sal, deptno, ROWNUM rnum FROM (
SELECT e.ename, e.sal, e.deptno
FROM emp e WHERE e.sal BETWEEN 1000 AND 3000
ORDER BY e.ename)
WHERE ROWNUM < :highest) -- stop count optimalizacia, cim neskorsia stranka tym viac prace
WHERE rnum > :lowest

