Resumen: en este tutorial, aprenderá a utilizar SQL Server ROW_NUMBER()
función para asignar un entero secuencial a cada fila de un conjunto de resultados.
Introducción a la función ROW_NUMBER () de SQL Server
La ROW_NUMBER()
es una función de ventana que asigna un número entero secuencial a cada fila dentro de la partición de un conjunto de resultados. El número de fila comienza con 1 para la primera fila de cada partición.
A continuación se muestra la sintaxis de la función ROW_NUMBER()
:
Vamos examine la sintaxis de la función ROW_NUMBER()
en detalle.
PARTICIÓN POR
La PARTITION BY
La cláusula divide el conjunto de resultados en particiones (otro término para grupos de filas). La función ROW_NUMBER()
se aplica a cada partición por separado y reinicializa el número de fila para cada partición.
La cláusula PARTITION BY
es opcional. Si lo omite, la función ROW_NUMBER()
tratará todo el conjunto de resultados como una sola partición.
ORDER BY
El ORDER BY
La cláusula define el orden lógico de las filas dentro de cada partición del conjunto de resultados. La cláusula ORDER BY
es obligatoria porque la función ROW_NUMBER()
es sensible al orden.
SQL Ejemplos de servidor ROW_NUMBER ()
Usaremos la tabla sales.customers
de la base de datos de muestra para demostrar la función ROW_NUMBER()
.
Usando SQL Server ROW_NUMBER () función sobre un ejemplo de conjunto de resultados
La siguiente declaración usa ROW_NUMBER()
para asignar a cada fila de cliente un número secuencial:
Aquí está el parcial salida:
En este ejemplo, omitió la cláusula PARTITION BY
, por lo tanto, la ROW_NUMBER()
trató todo el conjunto de resultados como una sola partición.
Usando SQL Ejemplo de servidor ROW_NUMBER () sobre particiones
El siguiente ejemplo usa el ROW_NUMBER()
función para asignar un número entero secuencial a cada cliente. Restablece el número cuando cambia la ciudad:
La siguiente imagen muestra la salida parcial:
En este ejemplo, usamos la cláusula PARTITION BY
para dividir los clientes en particiones por ciudad. El número de fila se reinicializó cuando la ciudad cambió.
Usando SQL Server ROW_NUMBER () para la paginación
La función ROW_NUMBER()
es útil para la paginación en aplicaciones. Por ejemplo, puede mostrar una lista de clientes por página, donde cada página tiene 10 filas.
El siguiente ejemplo utiliza ROW_NUMBER()
para devolver clientes de la fila 11 a 20, que es la segunda página:
El resultado es el siguiente:
En este ejemplo:
- Primero, el CTE usó la función
ROW_NUMBER()
para asignar cada fila en el resultado establece un número entero secuencial. - En segundo lugar, la consulta externa devolvió las filas de la segunda página, que tienen el número de fila entre 11 y 20.
En este tutorial, ha aprendido a usar la función ROW_NUMBER()
de SQL Server para asignar un entero secuencial a cada fila dentro de una partición de una consulta.