Selección con límite a X registros

27/07/2004 - 09:13 por XusQ | Informe spam
Puedo hacer un SELECT * FROM clientes pero que sólo me devuelva X registros?


Gracias,

Xus.
 

Leer las respuestas

#1 Carlos Sacristan
27/07/2004 - 09:19 | Informe spam
Limitar los conjuntos de resultados con TOP y PERCENT
La cláusula TOP limita el número de filas devueltas en el conjunto de
resultados.

TOP n [PERCENT]

n especifica el número de filas que se devuelven. Si no se especifica
PERCENT, n es el número de filas que se va a devolver. Si se especifica
PERCENT, n es el porcentaje de filas del conjunto de resultados que se va a
devolver:

SELECT TOP 120 * FROM t1 /*Return the top 120 rows of the result set. */
SELECT TOP 15 PERCENT * FROM t1 /* Return the top 15% of the result set. */.
Si una instrucción SELECT que incluya TOP tiene también una cláusula ORDER
BY, las filas que se van a devolver se seleccionan del conjunto de
resultados ordenado. El conjunto completo de resultados se genera en el
orden especificado y se devuelven las n filas superiores del conjunto de
resultados ordenado.

El otro método utilizado para limitar el tamaño de un conjunto de resultados
es ejecutar una instrucción SET ROWCOUNT n antes de ejecutar otra
instrucción. SET ROWCOUNT difiere de TOP en estos aspectos:

a.. El límite SET ROWCOUNT se aplica a la construcción de filas del
conjunto de resultados después de que se evalúe una instrucción ORDER BY.
Cuando se especifica ORDER BY, la instrucción SELECT se termina cuando se
hayan seleccionado n filas de un conjunto de valores que se han ordenado
según la clasificación ORDER BY especificada.


b.. La cláusula TOP se aplica a la instrucción SELECT individual en la que
se ha especificado. SET ROWCOUNT permanece activada hasta que se ejecuta
otra instrucción SET ROWCOUNT, como, por ejemplo, SET ROWCOUNT 0 para
desactivar la opción.


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"XusQ" escribió en el mensaje
news:
Puedo hacer un SELECT * FROM clientes pero que sólo me devuelva X


registros?


Gracias,

Xus.


Preguntas similares