Returnerer en Variant (streng), der angiver, hvor tallet forekommer i en beregnet serie af områder.
Syntaks
Partition ( antal, start, stop, interval)
Syntaksen for funktionen Partition har disse argumenter:
Argument |
Beskrivelse |
antal |
Obligatorisk. Helt tal, som du vil evaluere mod områderne. |
start |
Obligatorisk. Helt tal, som er starten af det overordnede talområde. Tallet må ikke være mindre end 0. |
stop |
Obligatorisk. Helt tal, som er slutningen på det overordnede talområde. Tallet må ikke være lig med eller mindre end start. |
interval |
Obligatorisk. Helt tal, der angiver størrelsen af partitionerne inden for det overordnede talområde (mellem start og stop). |
Bemærkninger
Funktionen Partition identificerer det bestemte område, hvor tal falder, og returnerer en variant (streng), der beskriver det pågældende område. Funktionen Partition er mest nyttig i forespørgsler. Du kan oprette en udvælgelsesforespørgsel, der viser, hvor mange ordrer der falder inden for forskellige områder, f.eks. ordreværdier fra 1 til 1000, 1001 til 2000 osv.
Tabellen nedenfor viser, hvordan områderne bestemmes ved hjælp af tre sæt af start-, stop- og interval-argumenter. Kolonnerne Første område og Sidste område viser, hvad Partition returnerer. Områderne repræsenteres af lavesteværdi:højesteværdi, hvor den lave ende (lavesteværdi) i området er adskilt fra den høje ende (højesteværdi) i området med et kolon (:).
start |
stop |
interval |
Før første |
Første område |
Sidste område |
Efter sidste |
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 den tredje linje i tabellen herover vises resultatet, når start og stop definerer et sæt af tal, der ikke kan divideres lige med interval. Det sidste område udvides til stop (11 tal), selvom interval er 20.
Hvis det er nødvendigt, returnerer Partition et område med tilstrækkeligt mange foranstillede mellemrum, så der er det samme antal tegn til venstre og højre for kolonet, som der er tegn i stop, plus ét. Det sikrer, at hvis du bruger Partition med andre tal, så håndteres den resulterende tekst korrekt under alle efterfølgende sorteringshandlinger.
Hvis interval er 1, er området tal:tal, uanset start - og stopargumenterne . Hvis f.eks. interval er 1, tal er 100 og stop er 1000, returnerer Partition " 100: 100".
Hvis en af delene er Null, returnerer Partition en Null-værdi.
Forespørgselseksempler
Udtryk |
Resultater |
SELECT Partition(enhedspris;40;240;20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice,40,240,20); |
Opretter et sæt områder for værdierne i feltet "enhedspris" fra "start"(40) til "stop"(240) med samme størrelse som "interval"(20) og beregner antallet af "enhedspris" i de respektive områder. Viser intervallerne i kolonnen PriceRange og antal i kolonnen 'Tæl'. |
VBA-eksempel
I dette eksempel antages det, at du har tabellen Ordrer, der indeholder feltet Fragt. Den opretter en udvælgelsesprocedure, der tæller antallet af ordrer, hvor fragtomkostningerne falder inden for hvert af flere områder. Funktionen Partition bruges først til at etablere disse områder, og derefter tæller funktionen SQL Count antallet af ordrer i hvert område. I dette eksempel er argumenterne til funktionen Partitionstart = 0, stop = 500, interval = 50. Det første interval ville derfor være 0:49 osv.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count FROM Orders GROUP BY Partition([freight],0,500,50);