我想从表格中选择A和B之间的行。该表至少包含A行,但可能少于B行。 例如,如果A = 2,B = 5且表有3行,则应返回第2行和第3行。
我怎样才能获得这样的范围内的行?
我正在使用Microsoft SQL Server 2008。
答案 0 :(得分:6)
您可以使用与this SO问题中描述的内容类似的内容。
即
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。
答案 1 :(得分:2)
SELECT *,ROW_NUMBER() OVER
(ORDER BY ordercol) AS 'rank'
FROM table
where rank between @a and @b