A korábbi cikkben szabályozott a használat SOR MEGELŐZŐ, illetve azt KÖVETŐ több mint záradék. Ebben a példában ugyanazt az adatbázist és táblázatokat fogom használni, amelyeket az előző példában készítettem, hogy a sorok nem korlátozottak legyenek mind a megelőző, mind a következő sorban.,

az SQL Server 2012-ben a TSQL-ben elérhető új funkciók egyike az előző sorok, a sorok pedig a következő opciók. Az előző és a következő opciók használatakor elérhető korlátlan opció. Így működnek …

-- ROWS UNBOUNDED PRECEDINGselect Year, DepartmentID, Revenue, min(Revenue) OVER (PARTITION by DepartmentID ORDER BY ROWS UNBOUNDED PRECEDING) as MinRevenueToDatefrom REVENUEorder by departmentID, year;

ebben a példában a MinRevenueToDate felsorolja ennek a sornak a legalacsonyabb bevételeit, valamint az összes korábbi sort, amelyet dátum szerint rendeltek meg a jelenlegi osztályazonosítóban.

látható, hogy az 1. sor a MinRevenueToDate-ot 10030-ra állítja, és csak a 7. sorban változik alacsonyabb bevételi évvel.,

ezután a 16. sor kezdődik egy új osztály számára, amelynek eddigi legalacsonyabb működési bevétele van. Ezután a 21. sor alacsonyabb bevételi számra áll vissza.

A következő sorok nem korlátozottak:

most a határtalan következő példa:

-- ROWS UNBOUNDED FOLLOWINGselect Year, DepartmentID, Revenue, min(Revenue) OVER (PARTITION by DepartmentID ORDER BY ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) as MinRevenueBeyondfrom REVENUEorder by departmentID, year;

ahol láthatja, hogy a min(bevétel) kiszámítása az aktuális sorból a departmentID által részesített készlet végéig.,

a korlátozás nélküli opció nagyon hasznos a számítás meghatározásához a készlet elejétől az aktuális sorig, vagy az aktuális sortól a készlet vagy csoport végéig.

ne feledje, hogy ez a szolgáltatás az SQL Server 2012-ben került bevezetésre, és nem érhető el a korábbi kiadásokban.

Kapcsolódó linkek

  • SQL Query Training
  • CTE Data Paging
  • több mint záradék sorokkal és tartományokkal