如何从运行时传递n值的表中获取前n行?

时间:2010-02-14 10:40:45

标签: sql-server sql-server-2005

如何从运行时传递n值的表中获取前n行?

2 个答案:

答案 0 :(得分:4)

在SQL Server 2005及更高版本中,您实际上可以参数化top命令。

以下代码来自MSDN

USE AdventureWorks;
GO
DECLARE @p AS int;
SELECT @p=10
SELECT TOP(@p)*
FROM HumanResources.Employee;
GO

在早期版本的SQL Server中,您需要使用rowcount或动态sql。

答案 1 :(得分:0)

您可以使用set rowcount.获取前100个,例如:

declare @myrowcount = 100

set rowcount @myrowcount      
select ..... from ... where...order by

因为你可以使用以下任何一种:

  

SET ROWCOUNT {number | @number_var}