rownum er en pseudokolonne, der tæller rækker i resultatsættet efter where-sætningen er blevet anvendt.
VÆLG tabelnavn FRA bruger_tabeller WHERE rækkenummer> 2;TABEL_NAVN ------------------------------0 rækker valgt
Denne forespørgsel vil dog altid returnere nul rækker, uanset antallet af rækker i tabellen.
For at forklare denne adfærd er vi nødt til at forstå, hvordan Oracle behandler ROWNUM. Når du tildeler ROWNUM til en række, starter Oracle ved 1 og øger kun værdien, når en række er valgt; det vil sige, når alle betingelser i WHERE-klausulen er opfyldt. Da vores betingelse kræver, at ROWNUM er større end 2, vælges ingen rækker, og ROWNUM øges aldrig ud over 1.
http://blog.lishman.com/2008/03/rownum.html
Redigeret
dette afsnit finder jeg på oracle
hjemmeside, som er meget bedre
Betingelser, der testes for ROWNUM-værdier, der er større end et positivt heltal, er altid falske. For eksempel returnerer denne forespørgsel ingen rækker:
VÆLG * FRA medarbejdere WHERE ROWNUM> 1;
Den første række, der hentes, tildeles et ROWNUM på 1 og gør betingelsen falsk. Den anden række, der skal hentes, er nu den første række og er også tildelt et ROWNUM på 1 og gør betingelsen falsk. Alle rækker opfylder efterfølgende ikke betingelsen, så ingen rækker returneres.
Du kan også bruge ROWNUM til at tildele unikke værdier til hver række i en tabel, som i dette eksempel: