Fuente. https://www.alamy.es/foto-la-palabra-top-en-3d-letras-sobre-fondo-blanco-das-wort-top-aus-3d-buchstaben-gesetzt-freigestellt-auf-weissem-hintergrund-47936567.html |
La cláusula TOP es una instrucción propia de SQL Server, no soportada en otros motores de bases de datos. Por ejemplo, en MYSQL, su equivalente es la cláusula LIMIT. Y en Oracle, su equivalente es FETCH FIRST. La cláusula permite seleccionar las N primeras tuplas de una consulta. A continuación se expone un ejemplo del uso de la cláusula TOP. |
Vamos a trabajar con la base de datos de centros veterinarios, donde una de las tablas almacena información acerca de los médicos veterinarios. Se desea consultar el nombre del médico veterinario más joven. Consultando los datos de los médicos veterinarios almacenados, se puede observar que Salomé Noreña es la más joven. Si logramos que el médico veterinario mas joven esté de primero en el resultado, podríamos aplicarle el TOP 1. |
|
Por lo tanto, podemos incluirle al SELECT la cláusula ORDER BY, para ordenar los datos, de menos a mayor, por edad de médico veterinario. Como se puede observar, la tupla de Salomé Noreña, que es el dato que estamos buscando, queda de primera en la consulta (es la de menor edad). |
|
Con el TOP 1 en el SELECT podemos especificar que solo queremos obtener la primera tupla, del conjunto de tuplas ordenadas por edad ascendentemente. Es decir, primero se ejecuta el ordenamiento y luego, de ese resultado ordenado, se ejecuta el TOP. Es de aclarar que la cláusula TOP tiene sentido en un SELECT que sea ordenado por algún campo. Cabe mencionar que en el caso de que hayan varios médicos veterinarios "más jóvenes", es decir, con la misma edad de Salomé Noreña, el TOP 1 solo mostraría a uno de ellos, lo cual es una desventaja, para este caso, de la cláusula TOP. Para este caso, la consulta debería solucionarse con una subconsulta, concepto mostrado en otro apartado. |
|
En el caso de que necesitemos a los veterinarios de mayor edad, se invierte el ordenamiento de la consulta, haciéndolo descendentemente. Como podemos observar en la imagen, podemos seleccionar los N primeros registros del resultado. Por otra parte, si al TOP le adicionamos la cláusula PERCENT N, podremos obtener los primeros N por ciento de registros de la consulta. Esta cláusula es utilizada para grandes volúmenes de datos. |
Video: