SQL ROW_NUMBER (Magyar)

Összefoglaló: ebben az oktatóanyagban megtanulhatja, hogyan használhatja a ROW_NUMBER() elemeket sorok számának rendeléséhez az egyes sorokhoz egy lekérdezés eredményhalmazában.

SQL ROW_NUMBER () Funkció áttekintése

A ROW_NUMBER() egy ablakfunkció, amely szekvenciális egész számot rendel a a lekérdezés eredményhalmazának minden sora.

Az alábbiakban bemutatjuk a ROW_NUMBER() függvény szintaxisát:

Ebben a szintaxisban

  • Először a PARTITION BY záradék osztja fel a FROM záradék partíciókra. A PARTITION BY záradék nem kötelező. Ha kihagyja, a teljes eredményhalmazt egyetlen partícióként kezeljük.
  • Ezután a ORDER BY záradék rendezi az egyes partíciók sorait. Mivel a ROW_NUMBER() sorrend-érzékeny függvény, a ORDER BY záradékra van szükség.
  • Végül mindegyik sor a partícióhoz sorozatos egész számot rendelünk, amelyet sornak hívunk. A sorszám visszaáll, amikor a partíció határait átlépik.

SQL ROW_NUMBER () példák

A employees és departments táblázatok a minta adatbázisból a bemutatáshoz:

A) Egyszerű SQL ROW_NUMBER () példa

A következő állítás megtalálja az összes alkalmazott keresztnevét, fizetését. Ezenkívül a ROW_NUMBER() függvény segítségével soros egész számot ad hozzá minden sorhoz.

A következő kép a részeredménykészletet mutatja:

B ) SQL ROW_NUMBER () használata lapozáshoz

A ROW_NUMBER() függvény felhasználható lapozáshoz. Például, ha egy alkalmazásban az összes alkalmazottat oldalanként szeretné megjeleníteni, amelyek mindegyik oldalán tíz rekord van.

  • Először használja a ROW_NUMBER() function az egyes sorokhoz sorozatos egész szám hozzárendeléséhez.
  • Másodszor szűrje le a sorokat kért oldalanként. Például az első oldalon a sorok kezdve egytől 9-ig, a második oldalon pedig a sorok kezdődnek 11-től 20-ig, és így tovább.

A következő utasítás visszaadja a a második oldalon minden oldal tíz rekordot tartalmaz.

Az alábbiakban a kimenet látható:

Ha az általános lekérdezés (CTE) kifejezést szeretné használni az allekérdezés helyett, akkor itt van a lekérdezés:

C) Az SQL ROW_NUMBER használata () az n-edik legmagasabb érték megtalálásához csoportonként

Az alábbi példa bemutatja, hogyan lehet megtalálni azokat az alkalmazottakat, akiknek a tanszékükön a legmagasabb a fizetés:

Az allekérdezésben:

  • Először a PARTITION BY záradék osztja el az alkalmazottakat osztályok szerint.
  • Másodszor, a ORDER BY záradék az egyes részlegek alkalmazottját fizetés szerint rendezi csökkenő sorrendben.
  • Harmadszor, a ROW_NUMBER() minden sorhoz sorozatos egész számot rendel. . Visszaállítja a számot, amikor az osztály változik.

Az alábbiakban bemutatjuk az allekérdezés eredményhalmazát:

A külső lekérdezésben csak azokat az alkalmazotti sorokat választottuk ki, amelyek row_num az 1. érték.

Itt található a teljes lekérdezés kimenete:

Ha a WHERE záradékban az állítmányt 1-ről 2-re, 3-ra és így tovább változtatja, akkor megkapja azokat az alkalmazottakat, akik rendelkezik a második legmagasabb fizetéssel, a harmadik legmagasabb fizetéssel és így tovább.

Ebben az oktatóanyagban megtanulta, hogyan kell használni az SQL ROW_NUMBER() függvényt egymás utáni hozzárendeléshez. egész szám a lekérdezés eredményhalmazának minden sorához.

  • Hasznos volt ez az oktatóanyag?
  • IgenNem

Write a Comment

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük