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
Vélemény, hozzászólás?