[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:
Si ordenamos por ventas:
SELECT * FROM productos ORDER BY ventas;
Obtenemos el siguiente resultado:
Si añadimos la cláusula TOP:
SELECT TOP 3 * FROM productos ORDER BY ventas
Obtenemos los 3 primeros registros:
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:
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:
Si el porcentaje no da exacto, siempre redondea al alza.
Para practicar puedes realizar este Ejercicio La cláusula TOP.
Síguenos en: Facebook Sobre aulaClic Política de Cookies
© aulaClic S.L. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.