Funkce SQL Server ROW_NUMBER

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.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *