2010-02-20 79 views
2

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

如何获取这样的范围内的行?

我使用Microsoft SQL Server 2008

回答

6

您可以使用类似于在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在你的例子。

2
SELECT *,ROW_NUMBER() OVER 
    (ORDER BY ordercol) AS 'rank' 
FROM table 
where rank between @a and @b