Shrnutí: v tomto kurzu se naučíte používat SQL Server ROW_NUMBER()
funkce pro přiřazení postupného celého čísla každému řádku sady výsledků.
Úvod do funkce SQL Server ROW_NUMBER ()
ROW_NUMBER()
je funkce okna, která přiřadí sekvenční celé číslo každému řádku v rámci oddílu sady výsledků. Číslo řádku začíná 1 pro první řádek v každém oddílu.
Následující text ukazuje syntaxi funkce ROW_NUMBER()
:
Pojďme podrobně prozkoumejte syntaxi funkce ROW_NUMBER()
.
PARTITION BY
PARTITION BY
klauzule rozděluje sadu výsledků na oddíly (jiný výraz pro skupiny řádků). Funkce ROW_NUMBER()
se použije pro každý oddíl zvlášť a znovu inicializuje číslo řádku pro každý oddíl.
Klauzule PARTITION BY
je volitelné. Pokud ji přeskočíte, funkce ROW_NUMBER()
bude s celou výsledkovou sadou zacházet jako s jedním oddílem.
ORDER BY
ORDER BY
definuje logické pořadí řádků v každém oddílu výsledkové sady. Klauzule ORDER BY
je povinná, protože funkce ROW_NUMBER()
je citlivá na pořadí.
SQL Příklady serveru ROW_NUMBER ()
K demonstraci funkce ROW_NUMBER()
použijeme tabulku sales.customers
ze vzorové databáze .
Použití serveru SQL Server ROW_NUMBER () funkce nad příkladem sady výsledků
Následující příkaz používá ROW_NUMBER()
k přiřazení pořadového čísla každé zákaznické řadě:
Zde je částečné výstup:
V tomto příkladu přeskočila klauzuli PARTITION BY
, proto ROW_NUMBER()
považoval celou sadu výsledků za jeden oddíl.
Použití jazyka SQL Server ROW_NUMBER () nad příkladem oddílů
Následující příklad používá ROW_NUMBER()
funkce pro přiřazení postupného celého čísla každému zákazníkovi. Při změně města resetuje číslo:
Následující obrázek ukazuje částečný výstup:
V tomto příkladu jsme použili klauzuli PARTITION BY
k rozdělení zákazníků na oddíly podle města. Při změně města bylo číslo řádku znovu inicializováno.
Použití serveru SQL Server ROW_NUMBER () pro stránkování
Funkce ROW_NUMBER()
je pro stránkování užitečná v aplikacích. Můžete například zobrazit seznam zákazníků podle stránky, kde má každá stránka 10 řádků.
Následující příklad používá ROW_NUMBER()
k vrácení zákazníků z řádku 11 až 20, což je druhá stránka:
Výstup je následující:
V tomto příkladu:
- Nejprve CTE pomocí funkce
ROW_NUMBER()
přiřadila každý řádek ve výsledku nastavuje postupné celé číslo. - Zadruhé, vnější dotaz vrátil řádky druhé stránky, které mají číslo řádku mezi 11 až 20.
V tomto výukovém programu jste se naučili používat funkci SQL Server ROW_NUMBER()
k přiřazení postupného celého čísla každému řádku v rámci oddílu dotazu.