sql server选取第m行到第n行的元组
现在有一个表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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。