Devuelve una variante (cadena) que indica dónde se produce un número dentro de una serie calculada de rangos.
Sintaxis
Partition(number, start, stop, interval)
La sintaxis de la función Partición consta de los siguientes argumentos:
| Argumento | Descripción |
|---|---|
| número | Obligatorio. Es el número entero que desea evaluar en función de los rangos. |
| iniciar | Obligatorio. Número entero que es el comienzo del rango general de números. El número no puede ser menor que 0. |
| detener | Obligatorio. Número entero, es decir, el final del rango general de números. El número no puede ser igual o menor que el inicio. |
| intervalo | Obligatorio. Número entero que especifica el tamaño de las particiones dentro del rango general de números (entre inicio y parada). |
Observaciones
La función Partición identifica el rango particular en el que cae el número y devuelve una variante (cadena) que describe ese rango. La función Partición es más útil en las consultas. Puede crear una consulta de selección que muestre cuántas órdenes están dentro de varios rangos, por ejemplo, valores de pedido de 1 a 1000, de 1001 a 2000, etc.
En la tabla siguiente se muestra cómo se determinan los rangos mediante tres conjuntos de argumentos start, stop e intervalo . Las columnas Primer rango y Último rango muestran lo que devuelve la partición . Los rangos se representan mediante lowervalue:uppervalue, donde el extremo inferior (valor inferior) del rango se separa del extremo superior (valor superior) del rango con dos puntos (:).
| iniciar | detener | intervalo | Antes del primer | First Range | Último rango | Después de la última |
|---|---|---|---|---|---|---|
| 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: " |
En la tabla mostrada arriba, la tercera línea muestra el resultado cuando start y stop definen un conjunto de números que no se pueden dividir uniformemente por intervalo. El último rango se extiende hasta stop (11 números) aunque el intervalo sea 20.
Si es necesario, la partición devuelve un intervalo con suficientes espacios iniciales para que haya el mismo número de caracteres a la izquierda y a la derecha de los dos puntos que en detener, más uno. Esto garantiza que si usa Partición con otros números, el texto resultante se controlará correctamente durante cualquier operación de ordenación posterior.
Si el intervalo es 1, el rango es número:número, independientemente de los argumentos start y stop . Por ejemplo, si interval es 1, number is 100 and stop is 1000, Partition devuelve " 100: 100".
Si cualquiera de las partes es nulo, la partición devuelve un valor nulo.
Ejemplos de consulta
| Expresión | Resultados |
|---|---|
| SELECT Partition(unitprice,40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice,40,240,20); | Crea un conjunto de intervalos para los valores del campo "preciounidad" desde "inicio"(40) hasta "parada"(240) con el mismo tamaño de "intervalo"(20) y calcula el recuento de "preciounidad" en los intervalos respectivos. Muestra los intervalos de la columna PriceRange y count en la columna "Count". |
Ejemplo VBA:
En este ejemplo se supone que tiene una tabla Pedidos que contiene un campo Transporte. Crea un procedimiento selecto que cuenta el número de pedidos para los que el costo de flete se encuentra en cada uno de varios rangos. La función Partición se usa primero para establecer estos rangos y, a continuación, la función Recuento SQL cuenta el número de órdenes en cada rango. En este ejemplo, los argumentos de la función Partición son start = 0, stop = 500, interval = 50. Por lo tanto, el primer rango sería 0:49, y así sucesivamente hasta 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count
FROM Orders
GROUP BY Partition([freight],0,500,50);