【发布时间】:2010-02-20 14:03:29
【问题描述】:
我想从表中选择 A 和 B 之间的行。该表至少有 A 行,但可能少于 B 行。 例如,如果 A = 2, B = 5 并且表有 3 行,它应该返回第 2 行和第 3 行。
我怎样才能得到这样一个范围内的行?
我使用的是 Microsoft SQL Server 2008。
【问题讨论】:
我想从表中选择 A 和 B 之间的行。该表至少有 A 行,但可能少于 B 行。 例如,如果 A = 2, B = 5 并且表有 3 行,它应该返回第 2 行和第 3 行。
我怎样才能得到这样一个范围内的行?
我使用的是 Microsoft SQL Server 2008。
【问题讨论】:
您可以使用类似于this SO 问题中描述的内容。
I.E.
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY YOUR_ORDERED_FIELD) as row FROM YOUR_TABLE
) a WHERE row > 5 and row <= 10
在您的示例中,A = 5 和 B = 10。
【讨论】:
SELECT *,ROW_NUMBER() OVER
(ORDER BY ordercol) AS 'rank'
FROM table
where rank between @a and @b
【讨论】: