sql >> Databáze >  >> RDS >> Oracle

vyberte rownum z platu kde rownum=3;

Oracle přiřazuje hodnoty ROWNUM postupně, jak jsou řádky vytvářeny dotazem – tedy první načtený řádek získá ROWNUM=1, druhý načtený řádek získá ROWNUM=2, třetí načtený řádek získá ROWNUM=3 atd. Upozornění – pro řádek pro přiřazení ROWNUM=3 MUSÍ být načteny dva předchozí řádky. A to je důvod, proč váš dotaz nevrací žádné řádky. Žádáte databázi o načtení třetího řádku – ale řádky 1 a 2 nebyly nikdy načteny.

Chcete-li demonstrovat, zkuste spustit následující dotazy:

SELECT S.* FROM SALARY S;          -- Should return all rows
SELECT ROWNUM, S.* FROM SALARY S;  -- Should return all rows with ROWNUM prepended
SELECT ROWNUM, S.* FROM SALARY WHERE ROWNUM=3;  -- Should return no rows

Chcete-li problém vyřešit, vyzkoušejte následující:

SELECT ROW_NUMBER FROM
  (SELECT ROWNUM AS ROW_NUMBER, S.* FROM SALARY S)
  WHERE ROW_NUMBER = 3;

Sdílejte a užívejte si.



  1. Výpočet počtu celých měsíců mezi dvěma daty v SQL

  2. 5 nejlepších nástrojů GUI MySQL (zdarma a placené)

  3. Jak Acosd() funguje v PostgreSQL

  4. Název tabulky jako proměnná