选择前 N 行 [重复]
Posted
技术标签:
【中文标题】选择前 N 行 [重复]【英文标题】:Selecting Top N rows [duplicate] 【发布时间】:2014-08-08 18:37:26 【问题描述】:每个人都知道这个用于选择顶部行的简单 SQL 查询
SELECT TOP 2 CostPrice
FROM dbo.tblItemsQueue
WHERE ItemCode='P0022'
ORDER BY AddedDate ASC
当它用 TOP 给出一个确切的数字时很清楚(例如:- TOP 100)。但是根据我的程序,我无法给出确切的数字。取而代之的是,我必须输入一个带有“TOP”的变量(例如:-N)(即:-SELECT TOP N CostPrice.....)并通过从C#传递一个值来分配该变量
如何在 SQL Server 中做到这一点?我使用了以下方法,但显示错误。
@Qty int
AS
SELECT TOP @Qty CostPrice
FROM dbo.tblItemsQueue
WHERE ItemCode='P0022'
ORDER BY AddedDate ASC
【问题讨论】:
这其实是一个很好的问题。 【参考方案1】:当使用变量来限制行数时,您必须将变量括在括号中。
@Qty int
AS
SELECT TOP (@Qty) CostPrice
FROM dbo.tblItemsQueue
WHERE ItemCode='P0022'
ORDER BY AddedDate ASC
【讨论】:
【参考方案2】:在变量周围添加括号
然后你得到
SELECT TOP (@Qty) Costprice ...
但是这只适用于 sql 2005 +
【讨论】:
以上是关于选择前 N 行 [重复]的主要内容,如果未能解决你的问题,请参考以下文章