sql分页语句问题

来源:百度知道 编辑:UC知道 时间:2024/06/28 13:30:10
WITH MOVIES AS( SELECT ROW_NUMBER() OVER ORDER BY [ID] DESC) AS Row, * FROM [tablename]) select * from movies where Row between (@start-1)*@pagesize+1 and @start*@pagesize
这语句怎么理解啊,over是什么啊.主要是前面这句不是很理解

ROW_NUMBER() 返回结果集分区内行的序列号,每个分区的第一行从 1 开始。
产生一个新的行号
over() 确定在应用关联的窗口函数之前,行集的分区和排序。
你理解为强制分组或排序

sql 2005 提供的新函数 专门用于分页

select top 10 *from 表名 //上面的10是指控制每页显示几行
where id not in(select top 10 id from 表名 order by id);
//下面的10是指 不是前10行的 前面10行,也就是11到20行

函数() over(pertion by 字段 order by 字段);

Pertion 按照某个字段分区

Order 按照某个字段排序