Obtener n registros con Top de SQL Server

En ocasiones necesitamos capturar las primeras o ultimas filas de una consulta, es posible obtener n registros con Top de SQL Server.

La cláusula Top limita el número de filas (rows) devueltas en una consulta indicando el total de registros.

Obtiene los primeros n registros de la consulta (de arriba hacia abajo).

Es recomendable utilizar la cláusula Order by en conjunto con Top, para ordenar las filas y dar certeza de los registros obtenidos.

Podemos utilizar Top junto a otras clausulas como select, update, delete, insert, etc.

Obtener los primeros registros con Top

Utilicemos una consulta select para obtener los primeros 5 registros de una consulta a la base de datos NorthWind.

SELECT TOP 10 * FROM Products ORDER BY UnitsInStock ASC;
  • Después de la cláusula select se coloca Top seguido del número de registros.
  • Con order by ordeno los productos con menos stock.

Como resultado podemos obtener el siguiente resultado.

Obtener n registros con Top de SQL Server

Obtener los últimos registros con Top

Se había comentado que como buena práctica utilizar Order by junto con Top, para esta tarea dependemos de esta cláusula.

Al ordenar la consulta select en forma descendente colocamos los últimos registros en primero lugar.

SELECT TOP 5 * FROM Products ORDER BY UnitsInStock DESC;

Toda la consulta es similar al primer ejemplo, únicamente cambia el orden, el resultado es el siguiente.

Obtener registros con top SQL

Podría interesarte ORDER BY y UNION en SQL Server  

Observaciones

Las filas de que obtiene dependen del orden en las columnas implementado con la cláusula Order by.

Si no se utiliza Order by, las filas se ordenan de acuerdo con la primera columna, que pueden ser números o letras.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *