Restituisce un tipo Variant (String) che indica dove si trova un numero all'interno di una serie calcolata di intervalli.
Sintassi
Partition( numero, inizio, fine, intervallo)
La sintassi della funzione Partition ha gli argomenti seguenti:
Argomento |
Descrizione |
numero |
Obbligatorio. Numero intero che si vuole valutare rispetto agli intervalli. |
inizio |
Obbligatorio. Numero intero che corrisponde all'inizio dell'intervallo complessivo di numeri. Il numero non può essere minore di 0. |
fine |
Obbligatorio. Numero intero che corrisponde alla fine dell'intervallo complessivo di numeri. Il numero non può essere minore o uguale a inizio. |
intervallo |
Obbligatorio. Numero intero che specifica le dimensioni delle partizioni nell'intervallo complessivo di numeri (tra inizio e fine). |
Osservazioni
La funzione Partition identifica l'intervallo specifico in cui rientra numero e restituisce un valore Variant (String) che descrive tale intervallo. La funzione Partition è particolarmente utile nelle query. È possibile creare una query di selezione che mostra il numero di ordini che rientrano in diversi intervalli, ad esempio con valori di ordine da 1 a 1000, da 1001 a 2000 e così via.
La tabella seguente mostra come vengono determinati gli intervalli usando tre set di argomenti inizio, fine e intervallo. Le colonne Primo intervallo e Ultimo intervallo mostrano ciò che Partition restituisce. Gli intervalli sono rappresentati da valoreminimo:valoremassimo, dove il valore inferiore (valoreminimo) dell'intervallo è separato dal valore superiore (valoremassimo) dell'intervallo dai due punti (:).
inizio |
fine |
intervallo |
Prima del primo |
Primo intervallo |
Ultimo intervallo |
Dopo l'ultimo |
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: " |
Nella tabella precedente la terza riga mostra il risultato quando inizio e fine definiscono un set di numeri che non è possibile dividere in modo uniforme tramite intervallo. L'ultimo intervallo si estende a fine (11 numeri) anche se intervallo è 20.
Se necessario, Partition restituisce un intervallo con spazi iniziali sufficienti a consentire che il numero di caratteri a sinistra e a destra dei due punti sia lo stesso dei caratteri in fine più uno. In questo modo, se si usa Partition con altri numeri, il testo risultante verrà gestito correttamente durante eventuali operazioni di ordinamento successive.
Se intervallo è 1, l'intervallo è numero:numero, indipendentemente dagli argomenti inizio e fine. Se, ad esempio, intervallo è 1, numero è 100 e fine è 1000, Partition restituisce "100: 100".
Se una delle parti è Null, Partition restituisce Null.
Esempi di query
Espressione |
Risultati |
SELECT Partition(prezzounitario,40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(prezzounitario,40,240,20); |
Crea un set di intervalli per i valori nel campo "prezzounitario" da "inizio"(40) a "fine"(240) con dimensioni "intervallo"(20) uguali e calcola il conteggio di "prezzounitario" nei rispettivi intervalli. Visualizza gli intervalli nella colonna PriceRange e count nella colonna 'Count'. |
Esempio di VBA
Questo esempio presuppone la presenza di una tabella degli ordini contenente un campo relativo alla spedizione. Viene creata una procedura di selezione che conta il numero di ordini per i quali le spese di spedizione rientrano in ognuno dei diversi intervalli. Viene prima di tutto usata la funzione Partition per definire questi intervalli, quindi viene usata la funzione SQL Count che conta il numero di ordini di ogni intervallo. In questo esempio gli argomenti per la funzione Partition sono inizio = 0, fine = 500, intervallo = 50. Il primo intervallo sarà pertanto 0:49 e così via fino a 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count FROM Orders GROUP BY Partition([freight],0,500,50);