返回两个行号之间的行(范围之间)[重复]
Posted
技术标签:
【中文标题】返回两个行号之间的行(范围之间)[重复]【英文标题】:Returning rows between two row numbers (Between Range) [duplicate] 【发布时间】:2014-10-31 04:09:55 【问题描述】:UsersTbl 结构:
id | uname
__ ____
1 | name0
2 | name1
4 | name2
1 | name3
8 | name4
5 | name5
6 | name6
我正在寻找哪种查询: 选择第 2 行到第 5 行之间的每一行的查询(不使用 id 列) 例子:
//start = 2
//end = 5
select * from users where rownum >= start and where rownum <= end
结果应该是:
name2,name3,name4,name5 语法? (mssql,注意:我使用的是经典的 asp(没关系))
【问题讨论】:
我以前不能用google,现在我找到了...:***.com/questions/4552769/… 【参考方案1】:您可以使用 ROW_NUMBER 根据您显示的顺序生成行号。然后,您可以在 WHERE 子句中使用它。
例如:
SELECT
id,
uname,
ROW_NUMBER() OVER (ORDER BY uname) AS rownum
FROM UsersTbl
WHERE
(rownum >= 2) AND
(rownum <= 6)
ORDER BY uname
【讨论】:
【参考方案2】:此查询适用于 SQL Serevr 2008 r2
with summary
as(
select ROW_NUMBER () over (Order by uName) as rn,UNAME
from [USE])
select uname
from summary S
WHERE S.rn >2 AND S.rn <= 6
【讨论】:
【参考方案3】:SELECT id,uname,ROW_NUMBER() OVER (ORDER BY uname) AS Rownumber
FROM UsersTbl
WHERE
(rownumber >= 2) AND (rownumber <= 6)
试试这个,我认为它会工作
【讨论】:
以上是关于返回两个行号之间的行(范围之间)[重复]的主要内容,如果未能解决你的问题,请参考以下文章