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.