Returnerer en variant (streng) som angir hvor et tall forekommer i en beregnet serie med områder.
Syntaks
Partisjon( tall, start, stopp, intervall)
Syntaksen for partisjonsfunksjonen har følgende argumenter:
Argument |
Beskrivelse |
tall |
Obligatorisk. Heltall du vil evaluere mot områdene. |
start |
Obligatorisk. Heltall som er starten på det totale tallområdet. Tallet kan ikke være mindre enn 0. |
stopp |
Obligatorisk. Heltall som er slutten på det totale tallområdet. Tallet kan ikke være lik eller mindre enn start. |
intervall |
Obligatorisk. Heltall som angir størrelsen på partisjonene innenfor det totale tallområdet (mellom start- og topp). |
Merknader
Partisjonsfunksjonen identifiserer det bestemte området der tallet faller og returnerer en variant (streng) som beskriver dette området. Partisjonsfunksjonen er mest nyttig i spørringer. Du kan opprette en utvalgsspørring som viser hvor mange ordrer som faller innenfor ulike områder, for eksempel ordreverdier fra 1 til 1000, 1001 til 2000 og så videre.
Tabellen nedenfor viser hvordan områdene bestemmes ved hjelp av tre sett med start-, stopp- og intervallargumenter. Kolonnene Fort område og Siste område viser hva partisjonen returnerer. Områdene representeres av lowervalue:uppervalue, der den lave enden (lowervalue) av området er atskilt fra den høye enden (uppervalue) av området med et kolon (:).
start |
stopp |
intervall |
Før først |
Første område |
Siste område |
Etter siste |
0 |
99 |
5 |
" :-1" |
" 0: 4" |
" 95: 99" |
" 100: " |
20 |
199 |
10 |
" : 19" |
" 20: 29" |
" 190: 199" |
" 200: " |
100 |
1010 |
20 |
" : 99" |
" 100: 119" |
" 1000: 1010" |
" 1011: " |
I tabellen som vises ovenfor, viser den tredje linjen resultatet når start og stopp definerer et sett med tall som ikke kan deles jevnt med intervall. Det siste området utvides til å stoppe (11 tall) selv om intervallet er 20.
Om nødvendig returnerer partisjonen et område med nok innledende mellomrom, slik at det er samme antall tegn til venstre og høyre for kolonet som det er tegn i stopp, pluss ett. Dette sikrer at hvis du bruker partisjon med andre tall, vil den resulterende teksten bli håndtert riktig under eventuelle etterfølgende sorteringsoperasjoner.
Hvis intervallet er 1, er området tall:tall, uavhengig av start- og stoppargumentene . Hvis for eksempel intervallet er 1, tallet er 100 og stopp er 1000, returnerer partisjonen " 100: 100".
Hvis noen av delene er Null, returnerer partisjonen en Null.
Spørringseksempler
Expression |
Resultater |
SELECT Partition(unitprice,40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice,40,240,20);) |
Oppretter et sett med områder for verdiene i feltet "enhetspris" fra "start"(40) til "stop"(240) med lik "intervall"(20) størrelse og beregner antallet "enhetspris" i respektive områder. Viser områdene i kolonnen PriceRange og teller i kolonnen Antall. |
VBA-eksempel
Dette eksemplet forutsetter at du har en ordretabell som inneholder et fraktfelt. Den oppretter en utvalgsprosedyre som teller antall ordrer som fraktkostnader faller inn i hvert av flere områder. Partisjonsfunksjonen brukes først til å etablere disse områdene, og sql count-funksjonen teller antall ordrer i hvert område. I dette eksemplet er argumentene til partisjonsfunksjonenstart = 0, stopp = 500, intervall = 50. Det første området vil derfor være 0:49 og så videre opptil 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count FROM Orders GROUP BY Partition([freight],0,500,50);