❶ sqlSERVER如何实现分页查询
写存储过程 ..  
SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO
ALTER  PROCEDURE usp_Province_pagination
   
    @PageSize INT, --每页的显示的行数
    @AbsolutePage INT, -- 当前页的页数
    @PageCount INT OUTPUT --总页数
AS
    DECLARE @BeginRecord INT --记录每此从哪一行开始读取
    DECLARE @RecordCount INT --表中数据的总条数
    DECLARE @sql NVARCHAR(1000)
    SET @RecordCount = (SELECT count(*) FROM Province) 
    --表中没有数据的情况
    IF @RecordCount = 0
        BEGIN
            SET @PageCount = 0
            RETURN(0)
        END
    -- 表中的总条数大于定义的每页的行数的情况
    IF @RecordCount > @PageSize
        BEGIN
            -- 计算总能分多少页
            SET @PageCount = (@RecordCount + @PageSize - 1)/@PageSize 
            --当前应该从哪一行开始读取
            SET @BeginRecord = ((@AbsolutePage-1) * @PageSize)
            SET @sql = N'SELECT TOP ' + cast(@PageSize AS NVARCHAR(100)) +' ProvinceID, provinceCode, ProvinceName
                        FROM  Province
                        WHERE ProvinceID NOT IN 
                             (SELECT TOP '+ CAST(@BeginRecord AS NVARCHAR(100)) + ' ProvinceID
                              FROM Province)'
                        
            EXECUTE sp_executesql @sql
        END
    ELSE  -- -- 表中的总条数大于定义的每页的行数情况
        BEGIN
           SET @PageCount = 1
           SET @SQL  = 'SELECT ProvinceID, provinceCode, ProvinceName FROM Province '
           EXECUTE sp_executesql @sql
        END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
❷ 如何用sql语句 实现分页查询
分页:一般会把当前页通过get方式传递,PHP通过$_GET['page']接收。
查询:可以从当前乘以每页显示数通过limit来实现分页效果。
//每页显示条数
$pageSize=10;
//当前页
$_GET['page']?$page=1:$page=$_GET['page'];
//开始查询位置
$seat=$page*$pageSize;
//sql语句
$sql="select*fromtablelimit$seat,$pageSize";
//输出数据到view即可
❸ sql分页查询问题(数据库高手请进)
order by 后面需要排序的列逗号隔开,如果需要倒序,则在对应的列名后面直接跟desc,然后再逗号跟下一个列名。但这样能在读出的数据中进行排序,如果要在页面显示控件上显示出排序效果,则要根据控件特性写代码
❹ SQL分页查询,怎么一次性显示2页的查询结果
按照上面回答的,可以这样修改下:
SELECT 产品, SUM(CASE 季度 WHEN '第一季度' THEN 销售量 ELSE 0 END) AS 第一季度, SUM(CASE 季度 WHEN '第二季度' THEN 销售量 ELSE 0 END) AS 第二季度, SUM(CASE 季度 WHEN '第三季度' THEN 销售量 ELSE 0 END) AS 第三季度 FROM 
(select *,ROW_NUMBER over(order by 产品) as rn from Tables )
where rn between @PageSize*(@PageIndex-1)+1 and @PageSize*@PageIndex 
GROUP BY 产品 ORDER BY 产品,rn
 
@PageSize 每页几条数据
@PageIndex 页码
只需按照参数传递即可
❺ sql分页语句查询问题
从t1结果集中取数据的时候没有排序,当然结果不会变
改成这样
select * from(select top 3 * from(select top 3 * from student order by 编号 desc) t1 order by 编号 desc) t2 order by 编号 asc
❻ 如何用sql语句 实现分页查询
适用于 SQL Server 2000/2005
SELECT TOP 页大小 *
FROM table1
WHERE id NOT IN
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
❼ SQL Server 分页 查询语句
四种方式实现SQLServer 分页查询
SQLServer 的数据分页:
假设现在有这样的一张表:
CREATE TABLE test
(
 id int primary key not null identity,
 names varchar(20)
)
然后向里面插入大约1000条数据,进行分页测试
假设页数是10,现在要拿出第5页的内容,查询语句如下:
--10代表分页的大小
select top 10 *
from test
where id not in
(
 --40是这么计算出来的:10*(5-1)
 select top 40 id from test order by id
)
order by id
原理:需要拿出数据库的第5页,就是40-50条记录。首先拿出数据库中的前40条记录的id值,然后再拿出剩余部分的前10条元素
第二种方法:
还是以上面的结果为例,采用另外的一种方法
--数据的意思和上面提及的一样
select top 10 *
from test
where id >
(
 select isnull(max(id),0)
 from 
  (
   select top 40 id from test order by id
  ) A
)
order by id
原理:先查询前40条记录,然后获得其最id值,如果id值为null的,那么就返回0
然后查询id值大于前40条记录的最大id值的记录。
这个查询有一个条件,就是id必须是int类型的。
第三种方法:
select top 10 *
from 
(
 select row_number() over(order by id) as rownumber,* from test
) A
where rownumber > 40
原理:先把表中的所有数据都按照一个rowNumber进行排序,然后查询rownuber大于40的前十条记录
这种方法和oracle中的一种分页方式类似,不过只支持2005版本以上的
第四种:
存储过程查询
创建存储过程
alter procere pageDemo
@pageSize int,
@page int
AS
declare @temp int
set @temp=@pageSize*(@page - 1)
begin
 select top (select @pageSize) * from test where id not in (select top (select @temp) id from test) order by id
end
执行存储过程
exec 10,5
❽ sql 分页多条件查询
查询可以用if else  去做。
例如:
sql="select * from ........."
``````````````
xh=request("型号")
······
if xh<>"" then sql=sql+" and 型号='"&xh&"'"
分页可以用
<%TurnPage(rs,20,"型号="&xh&"&其他6个参数·······")%>
<%
Sub TurnPage(ByRef Rs_tmp,PageSize,canshu) 'Rs_tmp 记录集 PageSize 每页显示的记录条数; 
Dim TotalPage '总页数 
Dim PageNo '当前显示的是第几页 
Dim RecordCount '总记录条数 
Rs_tmp.PageSize = PageSize 
RecordCount = Rs_tmp.RecordCount 
TotalPage = INT(RecordCount / PageSize * -1)*-1 
PageNo = Request.QueryString ("PageNo") 
'直接输入页数跳转; 
If Request.Form("PageNo")<>"" Then PageNo = Request.Form("PageNo") 
'如果没有选择第几页,则默认显示第一页; 
If PageNo = "" then PageNo = 1 
If RecordCount <> 0 then 
Rs_tmp.AbsolutePage = PageNo 
End If 
'获取当前文件名,使得每次翻页都在当前页面进行; 
Dim fileName,postion 
fileName = Request.ServerVariables("script_name") 
postion = InstrRev(fileName,"/")+1 
'取得当前的文件名称,使翻页的链接指向当前文件; 
fileName = Mid(fileName,postion) 
response.write "<table border=0 width='100%'><tr> "
If RecordCount = 0 or TotalPage = 1 Then 
Response.Write "" 
Else
response.write "<td align=left style='font-size:12px'> 总页数:<font color=#ff3333>"&TotalPage&"</font>页"
response.write "当前第<font color=#ff3333>"&PageNo&"</font>页 </td> "
response.write "<td align='right'  style='font-size:12px'> "
end if
If RecordCount = 0 or TotalPage = 1 Then 
Response.Write "" 
Else
 response.write "<a href='"&fileName&"?PageNo=1&"&canshu&"'>首页|</a>"
 If PageNo - 1 = 0 Then 
 Response.Write "前页|" 
 Else
 response.write "<a href='"&fileName&"?PageNo="&PageNo-1&"&"&canshu&"'>前页|</a>"
 End If 
 If PageNo+1 > TotalPage Then 
 Response.Write "后页|" 
 Else
 response.write "<a href='"&fileName&"?PageNo="&PageNo+1&"&"&canshu&"'>后页|</a>"
 End If
 response.write "<a href='"&fileName&"?PageNo="&TotalPage&"&"&canshu&"'>末页</a>"
End If
response.write "</td></td></tr></table> "
end sub%>
❾ 关于分页查询的sql语句
这里的K不仅仅是个别名的作用,他把 (select *,row_number() over(order BY UserID) rowIndex from userinfo)做为一个表来查询 ,如果不加则作为一个查询结果集,SQL无法再查询结果集上在进行查询
