选择范围内的数据库行

时间:2010-02-20 14:03:29

标签: sql select

我想从表格中选择A和B之间的行。该表至少包含A行,但可能少于B行。 例如,如果A = 2,B = 5且表有3行,则应返回第2行和第3行。

我怎样才能获得这样的范围内的行?

我正在使用Microsoft SQL Server 2008。

2 个答案:

答案 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