44 - Cláusula top


La palabra clave "top" se emplea para obtener sólo una cantidad limitada de registros, los primeros n registros de una consulta.

Con la siguiente consulta obtenemos todos los datos de los primeros 2 libros de la tabla:

 select top 2 *from libros;

Es decir, luego del "select" se coloca "top" seguido de un número entero positivo y luego se continúa con la consulta.

Se puede combinar con "order by":

 select top 3 titulo,autor 
  from libros
  order by autor;

En la consulta anterior solicitamos los títulos y autores de los 3 primeros libros, ordenados por autor.

Cuando se combina con "order by" es posible emplear también la cláusula "with ties". Esta cláusula permite incluir en la seleccion, todos los registros que tengan el mismo valor del campo por el que se ordena, que el último registro retornado si el último registro retornado (es decir, el número n) tiene un valor repetido en el registro n+1. Es decir, si el valor del campo por el cual se ordena del último registro retornado (el número n) está repetido en los siguientes registros (es decir, el n+1 tiene el mismo valor que n, y el n+2, etc.), lo incluye en la selección.

Veamos un ejemplo:

 select top 3 with ties
  *from libros
  order by autor;

Esta consulta solicita el retorno de los primeros 3 registros; en caso que el registro número 4 (y los posteriores), tengan el mismo valor en "autor" que el último registro retornado (número 3), también aparecerán en la selección.

Si colocamos un valor para "top" que supera la cantidad de registros de la tabla, SQL Server muestra todos los registros.


Retornar