ROW_NUMBER (Čeština)
Syntax
Popis ilustrace row_number.gif
Viz také:
„Analytické funkce“ pro informace o syntaxi, sémantice a omezeních.
Účel
ROW_NUMBER
je analytická funkce. Každému řádku, ke kterému je přiřazen, přiřadí jedinečné číslo (buď každý řádek v oddílu, nebo každý řádek vrácený dotazem) v seřazeném pořadí řádků uvedených v order_by_clause
, počínaje 1.
Vnořením poddotazu pomocí ROW_NUMBER
uvnitř dotazu, který načte hodnoty ROW_NUMBER
pro zadaný rozsah, můžete najít přesnou podmnožinu řádků z výsledků vnitřního dotazu. Toto použití funkce vám umožní implementovat hlášení nahoře-N, zdola-N a vnitřní-N. Pro dosažení konzistentních výsledků musí dotaz zajistit deterministické pořadí řazení.
Pro expr
expr
. Informace o platných formulářích expr
najdete v části „O výrazech SQL“.
Příklady
Pro každé oddělení v ukázkové tabulce oe.employees
, následující příklad přiřadí každému řádku čísla v pořadí podle data náboru zaměstnance:
ROW_NUMBER
je nedeterministická funkce. employee_id
je však jedinečný klíč, takže výsledky této aplikace této funkce jsou deterministické.
Viz také:
FIRST_VALUE a LAST_VALUE pro příklady nedeterministického chování
Následující dotaz Internal-N vybere všechny řádky z employees
tabulky, ale vrátí pouze padesátý první až jeden stý řádek:
SELECT last_name FROM (SELECT last_name, ROW_NUMBER() OVER (ORDER BY last_name) R FROM employees) WHERE R BETWEEN 51 and 100;