适合2005及以上版本:
declare @page_size int;
declare @page_num int;--比如:每页10条记录
set @page_size = 10;--比如:先取第1页
set @page_num = 1;select *
from
(
select *,
(row_number() over(order by @@servername) - 1) / @page_size as pagenum
from from biao
)t
where pagenum = @page_num - 1
declare @page_size int;
declare @page_num int;--比如:每页10条记录
set @page_size = 10;--比如:先取第1页
set @page_num = 1;select *
from
(
select *,
(row_number() over(order by @@servername) - 1) / @page_size as pagenum
from from biao
)t
where pagenum = @page_num - 1
(
select * ,row_number()over(partition by 分组列 order by getdate()) as num
from TB)select * from TT where num between 10 and 20 and ...lz的一些条件
(
select * ,row_number()over(partition by pid order by getdate()) as num
from Project
//partition by pid 又 order by getdate()这是干嘛的?
)
select * from TT where num between 10 and 20select * from TT where num between 10 and 20 这最后一句看懂了可这俩一起运行就报错
with TT
(
select * ,row_number()over(partition by pname order by getdate()) as num
from Project
)
select * from TT where num between 10 and 20我在语句中间加了个分号,还是报错
(select *,
row_number() over(partition by pname order by getdate()) 'num'
from Project)
select *
from TT
where num between 10 and 20
(select *,
row_number() over(partition by pname order by getdate()) 'num'
from Project)
select * from TT where num between 10 and 20
where num between 10 and 20
去掉发现num全都等于1!,这是什么情况
干嘛要用到这个呢?
这个主要是row_number函数必须要用order by,所以这里用服务器名称来排序,其实只是为了符合语法而言,没有实际意义