每个人都知道这个用于选择顶行的简单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
答案 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 +