Unidad 3. Consultas simples (X)


3.12. La cláusula TOP

[TOP <expresión>  [PERCENT] [WITH TIES]]

La cláusula TOP indica que en el resultado no deben aparecer todas las filas resultantes sino un cierto número de registros, las n primeras. Si la consulta incluye la cláusula ORDER BY, se realiza la ordenación antes de extraer los n primeros registros.

La expresión representa ese número n y debe devolver un número entero sin signo.

Por ejemplo tenemos la siguiente tabla:

SELECT  * FROM  productos:

Tabla productos

Si ordenamos por ventas:

SELECT * FROM  productos

ORDER BY ventas;

Resultado del ejemplo ORDER BY
Obtenemos el siguiente resultado:

Si añadimos la cláusula TOP:

SELECT TOP 3 *  FROM productos

ORDER BY ventas

Obtenemos los 3 primeros registros:

Resultado del ejemplo TOP

Si existen más registros con las mismas ventas que el último valor de la lista, éstos no saldrán en el  resultado de la consulta.

En el ejemplo el registro con cod = 2 no sale en el resultado y tiene las mismas ventas que cod = 3.

Si queremos que salgan añadimos la cláusula WITH TIES. La cláusula WITH TIES sólo se puede emplear si la SELECT incluye un ORDER BY, de lo contrario dará error.

Si añadimos la cláusula WITH TIES:

SELECT TOP 3 WITH TIES *

FROM productos

ORDER BY ventas

Obtenemos:

Resultado del ejemplo WITH TIES

Se incluyen en el resultado todos los registros que tienen ventas iguales al último registro.

Otro ejemplo:

SELECT TOP 10 oficina, ciudad,  ventas

FROM oficinas

ORDER BY ventas;

Devuelve las 10 peores oficinas en cuanto a ventas: ordenamos las oficinas por ventas de menor a mayor y sacamos las 10 primeras.

Si incluimos la palabra PERCENT, entonces n no indica el número de registros a recuperar sino el porcentaje de registros a recuperar del total de filas recuperadas después de ejecutar la cláusula WHERE.

SELECT TOP 50 PERCENT  *

FROM productos

ORDER BY ventas

Devuelve:

Resultado del ejemplo PERCENT

Si el porcentaje no da exacto, siempre redondea al alza.

Para practicar puedes realizar este Ejercicio La cláusula TOP.

Febrero-2010
Pág. 3.10

Atrás  Inicio  Adelante



.