ROW_NUMBER (Magyar)
Szintaxis
A ábra row_number.gif
Lásd még:
“Analitikus függvények” a szintaxissal, szemantikával és korlátozásokkal kapcsolatos információkért
Cél
ROW_NUMBER
elemző funkció. Egyedi számot rendel minden egyes sorhoz, amelyre alkalmazzák (vagy a partíció minden sorát, vagy a lekérdezés által visszaadott sorokat), a order_by_clause
mezőben megadott sorrendben. , kezdve 1-vel.
Azáltal, hogy beágyaz egy részlekérdezést a ROW_NUMBER
használatával egy lekérdezésen belül, amely lekéri a ROW_NUMBER
értékeket egy megadott tartományban a sorok pontos részhalmazát találhatja meg a belső lekérdezés eredményeiből. A funkció ilyen használata lehetővé teszi a felső N, az alsó N és a belső N jelentést. Az egyenletes eredmények érdekében a lekérdezésnek determinisztikus rendezési sorrendet kell biztosítania.
A ROW_NUMBER
vagy más elemző funkciót nem használhat a expr
. Vagyis nem fészkelhet analitikai függvényeket, de más beépített függvény-kifejezéseket is használhat a expr
számára. A expr
érvényes formáiról az “SQL-kifejezések ismertetése” című részben olvashat.
Példák
A mintatábla minden részlegéhez oe.employees
, a következő példa számokat rendel az egyes sorokhoz az alkalmazottak bérleti dátumának sorrendjében:
ROW_NUMBER
egy nemdeterminisztikus függvény. A employee_id
azonban egyedi kulcs, így a függvény ezen alkalmazásának eredményei determinisztikusak.
Lásd még:
FIRST_VALUE és LAST_VALUE a nemdeterminisztikus viselkedés példáihoz
A következő belső N lekérdezés kiválasztja az összes sort a employees
táblázatból, de csak az ötvenegyediket adja vissza az egy- századik sor:
SELECT last_name FROM (SELECT last_name, ROW_NUMBER() OVER (ORDER BY last_name) R FROM employees) WHERE R BETWEEN 51 and 100;