C# row_number实现数据库分页

比如select ROW_NUMBER() over (order by id) as RowId,* from adonet查出的结果是以ID排序,在前面多加一列RowId。

 代码如下 复制代码

RowId id name addr datet

1    000000    onepc0    cnblogs - 0    2011-10-25 18:25:04.093
2    000001    onepc1    cnblogs - 1    2011-10-25 18:55:04.093
3    000002    onepc2    cnblogs - 2    2011-10-25 19:25:04.093
4    000003    onepc3    cnblogs - 3    2011-10-25 19:55:04.093
5    000004    onepc4    cnblogs - 4    2011-10-25 20:25:04.093
6    000005    onepc5    cnblogs - 5    2011-10-25 20:55:04.093
7    000006    onepc6    cnblogs - 6    2011-10-25 21:25:04.093
8    000007    onepc7    cnblogs - 7    2011-10-25 21:55:04.093
9    000008    onepc8    cnblogs - 8    2011-10-25 22:25:04.093
10    000009    onepc9    cnblogs - 9    2011-10-25 22:55:04.093

select ROW_NUMBER() over (order by id desc) as RowId,* from adonet ---ID为desc序排列

RowId id name addr datet

1    046606    00000    cnblogs - 46606    2014-06-22 17:25:04.093
2    046605    11    cnblogs - 46605    2014-06-22 16:55:04.093
3    046604    onepc46604    cnblogs - 46604    2014-06-22 16:25:04.093
4    046603    onepc46603    cnblogs - 46603    2014-06-22 15:55:04.093
5    046602    onepc46602    cnblogs - 46602    2014-06-22 15:25:04.093
6    046601    onepc46601    cnblogs - 46601    2014-06-22 14:55:04.093
7    046600    onepc46600    cnblogs - 46600    2014-06-22 14:25:04.093
8    046599    onepc46599    cnblogs - 46599    2014-06-22 13:55:04.093
9    046598    onepc46598    cnblogs - 46598    2014-06-22 13:25:04.093
10    046597    onepc46597    cnblogs - 46597    2014-06-22 12:55:04.093

select ROW_NUMBER() over (order by id desc) as RowId,* from adonet order by id或者rowid 这里排的话,查下表就清楚了。

MSSQL存储过程

 代码如下 复制代码

--select id,name,addr,datet from adonet
--select id,name,addr,datet,ROW_NUMBER() over (order by datet) aaa from adonet order by aaa desc
--select GETDATE()
--select * from (select ROW_NUMBER() over (order by id) as RowId,* from adonet) temptable
--where RowId>=1 and RowId<=100
use wentest
if exists(select * from sys.sysobjects where type='p' and name='row_fy')
    drop procedure row_fy
go
create procedure row_fy
    @pagesize int, --分页大小
    @page int --当前第几页
    --@outfynum int output
with encryption --加密
as
    --declare @temp int
    select * from
        (
            select ROW_NUMBER() over (order by id) as RowId,* from
            adonet
        ) as temptable
    where RowId>=(@page-1)*@pagesize+1 and RowId<=@page*@pagesize

执行

row_fy 100,1

 

时间: 2024-10-30 11:02:32

C# row_number实现数据库分页的相关文章

数据库分页查询方法

在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法. 可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用总结归纳一下,以方便大家查询使用. 下面就分别给大家介绍.讲解一下三种数据库实现分页查询的方法. 一. MySQL 数据库分页查询 MySQL数据库实现分页比较简单,提供了LIMIT函数.一般只需要直接写到sql语句后面就行了. LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有

各种常见数据库分页实现(转)

  因为数据量过大,如果一次性查询会耗用大量时间以及性能,因此对数据进行分页显示变得尤为重要,以下就列出一些常用数据库的sql分页实现.  1.MySQL实现分页 MySQL实现分页效果比较简单,只有一个limit关键字就可以解决.  示例:SELECT username,password FROM tb_user WHERE id = 1 LIMIT 100,10; 具体:select * from tableName where 条件 limit 当前页码*页面容量-1,页面容量  2.Or

数据库分页和游标分页性能比较

问题描述 数据库分页和游标分页性能比较 我一直用的游标分页,也没遇到什么性能问题,就是下边这种: try{ List list=new ArrayList(); if(page != null) { if (rs.last())page.setTotalRow(rs.getRow()); //rs.beforeFirst(); rs.absolute(page.getFirstRow()); } T obj; for(int i=1 ; (page == null || i <= page.ge

数据库分页查询方法_数据库其它

可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用总结归纳一下,以方便大家查询使用. 下面就分别给大家介绍.讲解一下三种数据库实现分页查询的方法. 一. MySQL 数据库分页查询 MySQL数据库实现分页比较简单,提供了LIMIT函数.一般只需要直接写到sql语句后面就行了. LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数.

数据库分页查询语句数据库查询_数据库其它

先看看单条 SQL 语句的分页 SQL 吧. 方法1: 适用于 SQL Server 2000/2005 SELECT TOP 页大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ) ORDER BY id 方法2: 适用于 SQL Server 2000/2005 SELECT TOP 页大小 * FROM table1 WHERE id > ( SELECT ISNULL(M

Sql数据库分页查询语句

MySQL  --查询第10到20条数据   代码如下 复制代码 SELECT * FROM table_name WHERE - LIMIT 10,20;   SQLServer  代码如下 复制代码  --查询前10|10%条数据   SELECT TOP 10|10% * FROM table_name;   --查询第10到20条数据   SELECT TOP 10 * FROM    (SELECT TOP 20 * FROM table_name ORDER BY id ASC) a

数据库分页存储过程

存储过程|分页|数据|数据库 /*数据库分页存储过程---equn.net参数说明:?tablename为搜索表名?where为搜索表名,要显示所有记录请设为"1=1"?orderby为搜索结果排序,如order by id desc?curpage当前页码?page_record每页记录条数结果:?返回表tablename中满足条件where的第curpage页的page_record条记录,结果按orderby排序*/CREATE PROCEDURE Xp_Page(@tablen

数据库分页方法

分页|数据|数据库 方法一: select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 10 = 每页记录数 20 = (当前页 + 1) * 每页记录数 以上语句即可以实现分页,但是最后取出的结果排序是升序,如果需要结果集为降序(例如时间),则有两种方法可以处理 1.使用以下语句,但效率可能要降低一些 selec

一条sql 语句搞定数据库分页

antshome(原作)首发:CSDN 一条语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 10 = 每页记录数 20 = (当前页 + 1) * 每页记录数 以上语句即可以实现分页,但是最后取出的结果排序是升序,如果需要结果集为降序(例如时间),则有两种方法可以处理 1.使用以下语句