Jak mogę ustawić zmienną dynamiczną, która określa liczbę wierszy do zwrócenia w programie SQL Server? Poniżej nie jest poprawna składnia w SQL Server 2005+:
DECLARE @count int
SET @count = 20
SELECT TOP @count * FROM SomeTable
Jak mogę ustawić zmienną dynamiczną, która określa liczbę wierszy do zwrócenia w programie SQL Server? Poniżej nie jest poprawna składnia w SQL Server 2005+:
DECLARE @count int
SET @count = 20
SELECT TOP @count * FROM SomeTable
Odpowiedzi:
SELECT TOP (@count) * FROM SomeTable
Działa to tylko z SQL 2005+
Składnia „select top (@var) ...” działa tylko w SQL SERVER 2005+. W przypadku SQL 2000 możesz:
set rowcount @top
select * from sometable
set rowcount 0
Mam nadzieję że to pomoże
Oisin.
(edytowane w celu zastąpienia @@ rowcount przez rowcount - dzięki sierpień)
W przykładzie x0n powinno to być:
SET ROWCOUNT @top
SELECT * from sometable
SET ROWCOUNT 0
Lub po prostu umieść zmienną w nawiasie
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