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 exprexpr. 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;