TOP N作为存储的proc参数而不使用动态SQL?

时间:2016-10-13 19:51:58

标签: sql-server tsql stored-procedures

我有一个简单的存储过程,返回前20个更糟糕的百分比。 SP看起来像这样:

Create procedure dbo.usp_GetAwfulSalesmen
as

select top 20 AvgSales, Name from Sales order by AvgSales ASC

但是,假设我想要返回前20名之外的东西。

有没有办法将前N个发送到存储过程,这样它才是参数而不是固定值?

我不想使用动态sql。

感谢。

1 个答案:

答案 0 :(得分:7)

将INT参数添加到存储过程(即@Top)

Select Top (@Top) AvgSales, Name 
 From Sales 
 Order by AvgSales ASC