Toto bude fungovat:
vyberte plat od ( vyberte plat , rownum jako rn od (vyberte plat z e_salary order by plat desc)), kde rn =2;
Proč to nefunguje:
Při přiřazování ROWNUM k řádku začíná Oracle na 1 a pouze zvyšuje hodnotu, když je vybrán řádek; to znamená, když jsou splněny všechny podmínky v klauzuli WHERE. Protože naše podmínka vyžaduje, aby ROWNUM bylo větší než 2, nejsou vybrány žádné řádky a ROWNUM se nikdy nezvyšuje nad 1.
Doufám, že teď máte jasno.