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(并不重要))
答案 0 :(得分:2)
您可以使用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
答案 1 :(得分:1)
此查询适用于SQL Server 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
答案 2 :(得分:0)
SELECT id,uname,ROW_NUMBER() OVER (ORDER BY uname) AS Rownumber
FROM UsersTbl
WHERE
(rownumber >= 2) AND (rownumber <= 6)
尝试这个我觉得它会起作用