SqlServer2005的分页

来源:百度知道 编辑:UC知道 时间:2024/05/15 18:47:21
sql = "select p.id productid, p.name pname, p.descr pdescr, p.normalprice, p.memberprice, p.pdate, p.categoryid , c.id categoryid, c.name cname, c.descr cdescr, c.pid, c.cno, c.grade from product p join category c on (p.categoryid = c.id) order by p.pdate desc";
sql += " limit " + (pageNo - 1) * pageSize + "," + pageSize;
这是MySQL的,如何转化成sqlserver2005的sql语句
那如何利用row_number()实现呢?

declare @sql nvarchar(2000)
set sql="select top "+pageSize+"* from from product as p inner join category as c on p.categoryid = c.id where c.id not in(select top "+str((pageNo - 1) * pageSize )+" id from category ) order by p.pdate desc "
MySql分页和SQLServer分页差不多 不过SQLServer没有limit函数 所以用top+top的方法来实现分页