Cómo limitar el número de resultados en una consulta SQL con la instrucción SELECT TOP

En este tutorial, aprenderá a usar la instrucción SELECT TOP SQL Server para limitar las filas o registros devueltas por una consulta.


Introducción a SQL Server – Select Top

La cláusula o instrucción SELECT TOP permite limitar el número de filas o el porcentaje de filas devueltas en un conjunto de resultados de una consulta dada.

Debido a que el orden de las filas almacenadas en una tabla es impredecible, la SELECT TOP siempre se usa junto con la cláusula ORDER BY. Como resultado, el conjunto de resultados se limita al primer número de filas ordenadas.

A continuación se muestra la sintaxis de la cláusula TOP con la instrucción SELECT:

SELECT TOP (expression) [PERCENT]
    [WITH TIES]
FROM
    table_name
ORDER BY
    column_name;

En esta sintaxis, la instrucción SELECT puede tener otras cláusulas como WHERE, JOIN , HAVING y GROUP BY.

Después de la palabra clave TOP hay una expresión que especifica el número de filas que se devolverán. La expresión se evalúa como un valor flotante si se utiliza PERCENT , de lo contrario se convierte en un valor BIGINT.

La palabra clave PERCENT indica que la consulta devuelve el primer N porcentaje de filas, donde N es el resultado de la expression.

WITH TIES permite devolver más filas con valores que coinciden con la última fila del conjunto de resultados limitado. Tenga en cuenta que WITH TIES puede hacer que se devuelvan más filas de las que especifique en la expresión.

Por ejemplo, si desea devolver la mayoría de los productos, puede usar el TOP 1. Sin embargo, si dos o más productos tienen los mismos precios que el producto más caro, entonces se perderá los otros productos más caros en el conjunto de resultados. Para evitar esto, puede usar TOP 1 WITH TIES. Incluirá no solo el primer producto caro, sino también el segundo, el tercero, etc.

Ejemplos de Select Top

Utilizaremos la tabla production.products en la base de datos de muestra para la demostración.

select top

1) Usando TOP con un valor constante

El siguiente ejemplo utiliza un valor constante para devolver los 10 productos más caros.

SELECT TOP 10
     product_name,
     list_price
FROM
     production.products
ORDER BY
     list_price DESC;

Aquí está el resultado:

select top percent

2) Usando TOP para devolver un porcentaje de filas

El siguiente ejemplo usa PERCENT para especificar el número de productos devueltos en el conjunto de resultados. La tabla production.products tiene 321 filas, por lo que un porcentaje de 321 es un valor de fracción ( 3.21 ), SQL Server lo redondea al siguiente número entero que es cuatro ( 4 ) en este caso.

SELECT TOP 1 PERCENT
     product_name,
     list_price
FROM
     production.products
ORDER BY
     list_price DESC;

El resultado es:

Select restringir el total de resultados

3) Usar TOP WITH TIES para incluir filas que coincidan con los valores de la última fila

La siguiente declaración devuelve los tres productos más caros:

SELECT TOP 3 WITH TIES
    product_name, 
    list_price
FROM
    production.products
ORDER BY 
    list_price DESC;

La salida es la siguiente:

using SELECT TOP WITH TIES

En este ejemplo, el tercer producto más costoso tiene un precio de lista de 6499.99 . Debido a que la declaración usó TOP WITH TIES, devolvió tres productos más cuyos precios de lista son los mismos que el tercero.

En este tutorial, aprendió a usar la instrucción SELECT TOP de SQL Server para limitar el número de filas o el porcentaje de filas que devuelve una consulta.

Artículos relacionados
How to remove duplicate rows in SQL Server, MySql and Oracle?
How to remove duplicate rows in SQL Server, MySql and Oracle?

In this article we will see how to eliminate d

Aprende a utilizar subconsultas o subquery en SQL
Aprende a utilizar subconsultas o subquery en SQL

  Una subconsulta es una declaraci&oac

0 Comentarios
Enviame un comentario