Come posso avere una variabile dinamica che imposta la quantità di righe da restituire in SQL Server? Di seguito non è presente la sintassi valida in SQL Server 2005+:
DECLARE @count int
SET @count = 20
SELECT TOP @count * FROM SomeTable
Come posso avere una variabile dinamica che imposta la quantità di righe da restituire in SQL Server? Di seguito non è presente la sintassi valida in SQL Server 2005+:
DECLARE @count int
SET @count = 20
SELECT TOP @count * FROM SomeTable
Risposte:
SELECT TOP (@count) * FROM SomeTable
Funzionerà solo con SQL 2005+
La sintassi "select top (@var) ..." funziona solo in SQL SERVER 2005+. Per SQL 2000, puoi fare:
set rowcount @top
select * from sometable
set rowcount 0
Spero che questo ti aiuti
Oisin.
(modificato per sostituire @@ rowcount con rowcount - grazie augustlights)
Nell'esempio di x0n, dovrebbe essere:
SET ROWCOUNT @top
SELECT * from sometable
SET ROWCOUNT 0
Oppure inserisci semplicemente la variabile tra parentesi
DECLARE @top INT = 10;
SELECT TOP (@Top) *
FROM <table_name>;
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