选择前N行

时间:2014-08-08 18:37:26

标签: c# sql

每个人都知道这个用于选择顶行的简单SQL查询

    SELECT TOP 2 CostPrice

    FROM dbo.tblItemsQueue

    WHERE ItemCode='P0022'

    ORDER BY AddedDate ASC

很明显它给出了一个确切的数字与TOP(例如: - TOP 100)。但根据我的计划,我无法给出确切的数字。而不是那样,我必须输入一个变量(例如: - N)与' TOP' (即: - SELECT TOP N CostPrice .....)并通过传递C#

中的值来分配该变量

我如何在SQL Server中执行此操作?我使用了以下方法,但显示错误。

    @Qty int

    AS

    SELECT TOP @Qty CostPrice

    FROM dbo.tblItemsQueue

    WHERE ItemCode='P0022'

    ORDER BY AddedDate ASC        

2 个答案:

答案 0 :(得分:4)

使用变量限制行数时,必须将变量包装在括号中。

@Qty int

AS

SELECT TOP (@Qty) CostPrice

FROM dbo.tblItemsQueue

WHERE ItemCode='P0022'

ORDER BY AddedDate ASC  

答案 1 :(得分:2)

在变量

周围添加括号

然后你得到

SELECT TOP (@Qty) Costprice ... 

但是这只适用于sql 2005 +