Returnerer en variant (streng) som angir hvor et tall forekommer i en beregnet serie av områder.
Syntaks
Partisjon(tall; start; stopp; intervall)
Syntaksen for funksjonen Partisjon har disse argumentene:
| Argumenter | Beskrivelse |
|---|---|
| tall | Obligatorisk. Heltall du vil evaluere mot områdene. |
| Start | Obligatorisk. Heltall som er begynnelsen på det totale tallområdet. Tallet kan ikke være mindre enn 0. |
| Stopp | Obligatorisk. Heltall som er slutten av det totale området med tall. Tallet kan ikke være lik eller mindre enn start. |
| intervall | Obligatorisk. Heltall som angir størrelsen på partisjonene innenfor det totale området av tall (mellom start og stopp). |
Merknader
Partisjon-funksjonen identifiserer det bestemte området som tallet faller i, og returnerer en variant (streng) som beskriver dette området. Partisjonsfunksjonen er svært 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 Første område og Siste område viser hva partisjon returnerer. Områdene representeres av lowervalue:uppervalue, der den nedre enden (lowervalue) av området er skilt fra den øvre enden (uppervalue) av området med et kolon (:).
| Start | Stopp | intervall | Før første | Første område | Siste område | Etter sist |
|---|---|---|---|---|---|---|
| 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 ovenfor viser den tredje linjen resultatet når start og stopp definerer et sett med tall som ikke kan deles jevnt etter intervall. Det siste området utvides til stopp (11 tall) selv om intervallet er 20.
Hvis det er nødvendig, returnerer Partisjon 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 behandlet riktig under enhver påfølgende sorteringsoperasjon.
Hvis intervall er 1, er området tall:tall, uavhengig av start - og stoppargumenter . Hvis for eksempel intervall er 1, tall er 100 og stopp er 1000, returnerer partisjon " 100: 100".
Hvis noen av delene er null, returnerer partisjon en null.
Eksempler på spørringer
| Uttrykk | Resultater |
|---|---|
| SELECT Partisjon(enhetspris;40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(enhetspris,40,240,20); | Oppretter et sett med områder for verdiene i feltet «enhetspris» fra «start»(40) til «stopp»(240) med lik «intervall»(20) størrelse og beregner antallet «enhetspris» i de respektive områdene. Viser områdene i kolonnen PriceRange og count i kolonnen 'Count'. |
VBA-eksempel
Dette eksemplet antar at du har en ordretabell som inneholder et Frakt-felt. Det oppretter en utvalgsprosedyre som teller antall ordrer der fraktkostnaden faller inn i hvert av flere områder. Partisjonsfunksjonen brukes først til å etablere disse områdene, deretter teller SQL Count-funksjonen antall ordrer i hvert område. I dette eksemplet er argumentene til partisjonsfunksjonenstart = 0, stop = 500, interval = 50. Det første området vil derfor være 0:49, og så videre opp til 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count
FROM Orders
GROUP BY Partition([freight],0,500,50);