Sql 数据分页解决方案

分页|解决|数据

很多开始学习编程的朋友们在使用数据库自定义分页的时候,会遇到写不好数据分页存储过程的问题。

这里我就自己的一点经验和学习心得提供几种数据库内分页的存储过程和大家分享一下。

1、 使用top
1.1利用当前记录号(currentnote)和分页页面大小(pagesize)进行分页

create proc GetNextPageInfo2

@pagesize int, --page size

@currentnote int --current note

As

declare @sql nvarchar(200)

set @sql=N'select top '+convert(varchar(10),@pagesize)+

' * from dbo.Userinfo where userid > ' + convert(varchar(10),@currentnote)

exec sp_executesql @sql

go

1.2利用本页页码和分页页面大小进行分页

create proc GetNextPageInfo

@pagesize int, --page size

@page int --CurrentPage NO

As

declare @jilu bigint

set @jilu=(@pagesize*@page)

declare @sql nvarchar(200)

set @sql=N'select top '+convert(varchar(10),@pagesize)+

' * from dbo.Userinfo where userid not in (select top ' + convert(varchar(10),@jilu) +

' userid from Userinfo order by userid) order by userid'

exec sp_executesql @sql

go

两种方式比较:第一种执行效率应该高于第二种,不过再id号多变的情况下第二种方法使用起来相对简单。

2、 使用rowcount

3、 2.1利用当前记录号(currentnote)和分页页面大小(pagesize)进行分页

create proc GetNextPageInfo3

@pagesize int, ----分页大小

@currentnote int ----当前页最后一条记录号

as

set rowcount @pagesize

select * from userinfo where userid>@currentnote

当然,除上面的几种外因该还有很多其他方法。希望大家在以后学习的过程中能过多多交流,大家也好共同进步。

时间: 2024-10-18 06:42:51

Sql 数据分页解决方案的相关文章

[SQL]学习一下sql数据分页

今天写点啥呢?就数据分页吧.同事说你直接将所有数据库中的数据都返回给我好了,我一并处理.但我说还好现在就几十条测试数据的,如果说是上万条,几十万条数据,我一下子查询数据库都打包发给你,你还要解析,那客户点击了个查询按钮,按照这样做要等到猴年马月,所以说,服务器端只能一点一点的返回给你才是最佳解决方案! sql数据分页有几种方法,首先用最简单最原始的方法,选择top10: select top 10 * from Student where id not in(select top(10*@pag

SQL数据分页查询的方法_MsSql

最近学习了一下SQL的分页查询,总结了以下几种方法. 首先建立了一个表,随意插入的一些测试数据,表结构和数据如下图: 现在假设我们要做的是每页5条数据,而现在我们要取第三页的数据.(数据太少,就每页5条了) 方法一: select top 5 * from [StuDB].[dbo].[ScoreInfo] where [SID] not in (select top 10 [SID] from [StuDB].[dbo].[ScoreInfo] order by [SID]) order by

SQL数据分页查询的方法

最近学习了一下SQL的分页查询,总结了以下几种方法. 首先建立了一个表,随意插入的一些测试数据,表结构和数据如下图: 现在假设我们要做的是每页5条数据,而现在我们要取第三页的数据.(数据太少,就每页5条了) 方法一: select top 5 * from [StuDB].[dbo].[ScoreInfo] where [SID] not in (select top 10 [SID] from [StuDB].[dbo].[ScoreInfo] order by [SID]) order by

通用的SQL数据分页存储过程

CREATE PROCEDURE spGetPageOfRecords  @pageSize int = 20,                                      -- 分页大小  @currentPage int ,                                  -- 第几页  @columns varchar(1000) = '*',                        -- 需要得到的字段  @tableName varchar(100

分页解决方案之GridView+QuickPager+QuickPager_SQL+DataAccessLibrary+数据

分页解决方案之GridView+QuickPager+QuickPager_SQL+DataAccessLibrary+数据库 这里要说的不仅仅是一个分页控件,而是一套解决方案,包括如何显示数据.显示分页导航,如何得到分页用的sql语句(等效于存储过程),如何提取数据,如何绑定控件,如何响应事件,添加.修改.删除数据后如何更新,如何查询数据等等.一整套完整的解决方案. 这个方案要有几个特点: 1.支持多种数据库,可以提供多个分页算法以便于支持多种数据库. 2.可以在不同的要求下选用最优的分页算法

sql排序分页 如果有新数据插入

问题描述 sql排序分页 如果有新数据插入 sql排序分页 如果有新数据插入并且排序在前面,那取第二页的时候就会有重复数据,而且新插入的数据展示不出来了,怎么解决呢? 各位可能没理解我意思: 比如说现在数据库里面几千万数据,还是实时插入的数据,我想排序后分页取,比如说第一次通过代码给数据库传参取第一页,取100条, 1.这个过程数据库是把所有数据几千万条全部load到内存中排序,然后进行分页,然后取出前100条吗? 2.那第二次,还会再load所有数据一次重新排一次序,再取出101-200之间的

分页解决方案 之 数据访问函数库——另类的思路、另类的写法,造就了不一样的发展道路。

      上一篇:分页解决方案 -- GridView + QuickPager + QuickPager_SQL + DataAccessLibrary + 数据库         如何访问数据库?一个老掉牙的问题,方法多了去了,什么直接使用ado.net.使用SQLHelp.使用微软的企业库.使用ORM.使用LinQ to SQL等等,还可以使用自己封装的函数库,这里我就想说一下我的数据访问函数库的使用方法.       您可能会说了,这么简单的东东还用说吗,重复制作轮子有意义吗?这个嘛,

SQL Server 2005: 利用新的ranking函数实现高效的数据分页操作

server|分页|函数|数据 最近MSDN Magazine上的一篇文章10 Tips for Writing High-Performance Web Applications提到了有效的数据分页技术对提高ASP .NET程序性能的重要性:并给出了一个实现数据分页的stored procedure的例子,抄录如下: CREATE PROCEDURE northwind_OrdersPaged ( @PageIndex int, @PageSize int ) AS BEGIN DECLARE

C#和SQL数据浏览分页

分页|数据 C#和SQL数据浏览分页 如果需要考虑如时间的过滤.其他条件的加入,可以在SQL语句进行编辑,普通的网站,下面的数据浏览分页 就可以了. aspx代码: <%@ Page language="c#" Codebehind="StockOrderFormBrower.aspx.cs" AutoEventWireup="false" Inherits="GSP.StockOrderFormBrower" %>