Retourne un Variant (String) indiquant où un nombre se produit dans une série calculée de plages.
Syntaxe
Partition( nombre, début, arrêt, intervalle)
La syntaxe de la fonction Partition contient les arguments suivants :
Argument |
Description |
nombre |
Obligatoire. Nombre entier que vous souhaitez évaluer par rapport aux plages. |
début |
Obligatoire. Nombre entier qui est le début de la plage globale de nombres. Le nombre ne peut pas être inférieur à 0. |
arrêter |
Obligatoire. Nombre entier qui correspond à la fin de la plage globale de nombres. Le nombre ne peut pas être égal ou inférieur à start. |
intervalle |
Obligatoire. Nombre entier qui spécifie la taille des partitions dans la plage globale de nombres (entre start et stop). |
Notes
La fonction Partition identifie la plage particulière dans laquelle le nombre se situe et retourne un Variant (String) décrivant cette plage. La fonction Partition est particulièrement utile dans les requêtes. Vous pouvez créer une requête select qui indique le nombre de commandes comprises dans différentes plages, par exemple, des valeurs de commande comprises entre 1 et 1000, 1001 et 2000, etc.
Le tableau suivant montre comment les plages sont déterminées à l’aide de trois jeux d’arguments start, stop et interval . Les colonnes First Range et Last Range indiquent ce que partition retourne. Les plages sont représentées par lowervalue :uppervalue, où l’extrémité inférieure (lowervalue) de la plage est séparée de l’extrémité supérieure (uppervalue) de la plage avec deux-points ( :).
début |
arrêter |
intervalle |
Avant d’abord |
Première plage |
Dernière plage |
Après la dernière |
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: " |
Dans le tableau ci-dessus, la troisième ligne affiche le résultat lorsque le début et l’arrêt définissent un ensemble de nombres qui ne peuvent pas être divisés uniformément par intervalle. La dernière plage s’étend jusqu’à l’arrêt (11 nombres), même si l’intervalle est 20.
Si nécessaire, Partition renvoie une plage avec suffisamment d’espaces de début afin qu’il y ait le même nombre de caractères à gauche et à droite du signe deux-points que les caractères en point, plus un. Cela garantit que si vous utilisez Partition avec d’autres nombres, le texte obtenu sera géré correctement lors de toute opération de tri ultérieure.
Si l’intervalle est égal à 1, la plage est number :number, quels que soient les arguments start et stop . Par exemple, si interval est 1, nombre est 100 et stop est 1000, partition retourne « 100 : 100 ».
Si l’une des parties a la valeur Null, Partition retourne une valeur Null.
Exemples de requêtes
Expression |
Résultats |
SELECT Partition(unitprice,40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice,40,240,20) ; |
Crée un ensemble de plages pour les valeurs du champ « unitprice » de « start » (40) à « stop » (240) avec une taille égale « interval » (20) et calcule le nombre de « unitprice » dans les plages respectives. Affiche les plages dans la colonne PriceRange et count dans la colonne « Count ». |
Exemple VBA
Cet exemple suppose que vous disposez d’une table Orders qui contient un champ Freight. Il crée une procédure de sélection qui compte le nombre de commandes pour lesquelles le coût du transport se situe dans chacune de plusieurs plages. La fonction Partition est d’abord utilisée pour établir ces plages, puis la fonction NOMBRE SQL compte le nombre de commandes dans chaque plage. Dans cet exemple, les arguments de la fonction Partition sont start = 0, stop = 500, interval = 50. La première plage serait donc 0 :49, et ainsi de suite jusqu’à 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count FROM Orders GROUP BY Partition([freight],0,500,50);