问题
How to get top n rows from a table where value of n is passed at run-time?
回答1:
In SQL Server 2005 and beyond you can actually parameterise the top command.
The code below is from MSDN
USE AdventureWorks;
GO
DECLARE @p AS int;
SELECT @p=10
SELECT TOP(@p)*
FROM HumanResources.Employee;
GO
In earlier versions of SQL Server you will need to either use rowcount or dynamic sql.
回答2:
You can use set rowcount. To get the first 100, for example:
declare @myrowcount = 100
set rowcount @myrowcount
select ..... from ... where...order by
since you can use either of:
SET ROWCOUNT { number | @number_var }
来源:https://stackoverflow.com/questions/2260767/how-to-get-top-n-rows-from-a-table-where-value-of-n-is-passed-at-run-time