2011-06-08 7 views
23

Estoy creando una consulta de SQL Server que tomará un parámetro y lo usará como el número de registro que devolverá.SQL Server: use un parámetro para seleccionar la X superior del conjunto de resultados

En pseudocódigo:

parameter returnCount 

select top returnCount * from table where x = y 

¿Cuál es la sintaxis/código correcto para llevar a cabo esa operación?

+0

¿Qué ** versión ** de SQL Server estás usando? –

+1

pregunta de hace dos años, y ustedes, soldados de asalto SO ahora lo están marcando como un duplicado? !! – pithhelmet

+0

Nunca es demasiado tarde – MatteoSp

Respuesta

51

En SqlServer 2005 y hasta, hacer esto:

CREATE PROCEDURE GetResults (
    @ResultCount int 
) 
AS 

SELECT top(@ResultCount) FROM table where x = y 

Para versiones anteriores, utilice:

CREATE PROCEDURE GetResults (
    @ResultCount int 
) 
AS 

SET ROWCOUNT @ResultCount 

SELECT * FROM table where x = y 

http://www.4guysfromrolla.com/webtech/070605-1.shtml para más información.

15

A partir de SQL Server 2005 (pero no antes), que puede definir una variable para determinar el número de filas superior devuelto:

DECLARE @returnCount INT 

SET @returnCount = 15 

SELECT TOP (@returnCount) * 
FROM dbo.table 
WHERE x = y 
Cuestiones relacionadas