variable top from ejemplos comando sql sql-server-2005

from - select top variable sql server



SELECT TOP dinĂ¡mico @var en SQL Server (6)

¿Cómo puedo tener una variable dinámica que establezca la cantidad de filas para devolver en SQL Server? A continuación no hay una sintaxis válida en SQL Server 2005+:

DECLARE @count int SET @count = 20 SELECT TOP @count * FROM SomeTable



La sintaxis "select top (@var) ..." solo funciona en SQL SERVER 2005+. Para SQL 2000, puedes hacer:

set rowcount @top select * from sometable set rowcount 0

Espero que esto ayude

Oisin.

(editado para reemplazar @@ rowcount con rowcount - gracias augustlights)


O simplemente pones la variable entre paréntesis

DECLARE @top INT = 10; SELECT TOP (@Top) * FROM <table_name>;


También es posible usar SQL dinámico y ejecutarlo con el comando exec:

declare @sql nvarchar(200), @count int set @count = 10 set @sql = N''select top '' + cast(@count as nvarchar(4)) + '' * from table'' exec (@sql)


SELECT TOP (@count) * FROM SomeTable

Esto solo funcionará con SQL 2005+


declare @rows int = 10 select top (@rows) * from Employees order by 1 desc -- optional to get the last records using the first column of the table