首页 > 数据库技术 > 详细

sql server选取第m行到第n行的元组

时间:2015-01-02 21:06:39      阅读:451      评论:0      收藏:0      [点我收藏+]

现在有一个表Questioin,主码是qid,要求选择第m行到第n行的元组

//方法一:效率最低

//错误:如果n<m,将选取前n条数据,如果n>=m,将选取从m+1开始的n条数据

select top n *
from Question
where qid not in
{
select top m qid
from Question
}

//当然改成下面的就正确了

select top(n-m)* 
from Question 
where qid not in
(select top m id from Question)

//方法二:先排序,据说效率最高

select top m * from 
(select top n * from Question order by qid asc)a
order by qid desc

//方法三:利用ROW_NUMBER函数对元组编号(推荐使用)

SELECT * FROM 
(
SELECT ROW_NUMBER() OVER(ORDER BY qid) as rowIndex,* FROM Question
)b
WHERE b.rowIndex>=m AND b.rowindex<=n

sql server选取第m行到第n行的元组

原文:http://www.cnblogs.com/yxr1993/p/4198791.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!