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 }