sqlserver 对一张表进行分页查询,但是还要通过第二章张表获取信息
比如有一张表
create table Student(
sid int primary key identity(1,1) ,
sname varchar(15) not null
)
第二张表
create table Comment(
id int primary key identity(1,1) ,
sid int not null
)
我需要对第二张表comment 进行分页查询,但是还要通过第一张表查询姓名
要改如何写sql代码
我用内连接后接下来该如何做
------解决方案--------------------
跟普通的单表分页有区别吗?
select * from
(
select row_number()over(order by A.id)as row_num, A.*,B.* from A inner join B on A.id=B.id
) where row_num>10 and row_num<=20
你就给他看成单表的分页,只不过是多了另外一个表的部分字段而已
------解决方案--------------------
昨天刚好在2012下测试分页
虚拟机上高的,代码贴不出来,截个图示例一下

------解决方案--------------------
try this,
declare @pagesize int,@pagenum int
select @pagesize=[页记录数],@pagenum=[页码]
select id,sid,sname from
(select a.id,a.sid,b.sname,
(row_number() over(order by getdate())-1)/@pagesize+1 'rn'
from Comment a
inner join Student b on a.sid=b.sid) t
where t.rn=@pagenum
------解决方案--------------------
declare @page_size int;
declare @page_num int;
--比如:每页10条记录
set @page_size = 10;
--比如:先取第1页
set @page_num = 1;
select id,sid,sname
from
(
select c.id,
c.sid,
s.sname,
--这里按照@@servername来排序,
--你可以根据需要按照id,sid,sname等字段来排序
(row_number() over(order by @@servername) - 1) / @page_size as rownum
from commet c
inner join student s
on c.sid = s.sid
)t
where rownum = @page_num - 1