SQL:

CREATE PROCEDURE PagingViewTest
(
@currentPageIndex INT, --页序号
@pageSize INT, --页大小
@pageCount INT OUTPUT --返回值,总记录数
)
AS
BEGIN
--取总记录数
SELECT @pageCount=COUNT(OrderID) FROM dbo.sale_Order;
--利用CTE以提高执行效率
WITH Result
AS
(
SELECT ROW_NUMBER() OVER(ORDER BY OrderID) AS rowNumber,* FROM sale_order s
)
SELECT * FROM Result r
WHERE ((@currentPageIndex-1)*@pageSize < rowNumber)
AND (rowNumber <=@currentPageIndex*@pageSize)
END

执行结果:

一直想自己实现分页的存储过程,一直没实现,今天没偷懒,言归正传,简略讲下分页的原理:分页有几个参数,当前页序号(即第几页,必须),页大小(每页显示数量,必须),总页数(可选),总记录数(可选),前台查询数据时需要向后台至少发送两个必选参数。参数有了,SQL Server也就不愁分页啦!利用Row_Number的主要原因是要对表进行编号,以确定表中记录是第X页中第X条数据,执行完Row_Number函数的表如下:

看到rowNumber列相信大家都有思路了,只要加上where条件 前一页面*每页大小< rowNumber and。rowNumber <= 当前页面*每页大小 即可,原理就是这些,可以基于这个思路继续拓展,比如传入表名实现通用表或者视图的分页等等。

今天关于SQL分页就介绍到这里,欢迎大家批评指正。

T-SQL利用Row_Number函数实现分页的更多相关文章

  1. SQL的ROW_NUMBER函数

    with tabs as ( select ROW_NUMBER() over(partition by customerID order by totalPrice) as rows,custome ...

  2. SQL Server中row_number函数的简单用法

    一.SQL Server Row_number函数简介   ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数. 行号以每个分区中第一行的行号开头. 以下是R ...

  3. SQL SERVER排序函数

    排名函数是SQL Server2005新加的功能.在SQL Server2005中有如下四个排名函数: 1.row_number 2.rank 3.dense_rank 4.ntile 下面分别介绍一 ...

  4. SQL 语句常用函数

    一.字符转换函数 1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错. 2.CH ...

  5. SQL Server系统函数简介[转]

    一.字符转换函数1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错.2.CHAR ...

  6. 在论坛中出现的比较难的sql问题:5(row_number函数 分页、随机返回数据)

    原文:在论坛中出现的比较难的sql问题:5(row_number函数 分页.随机返回数据) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路. 1.在inner join后, ...

  7. SQL Server数据库ROW_NUMBER()函数使用详解

    SQL Server数据库ROW_NUMBER()函数使用详解 摘自:http://database.51cto.com/art/201108/283399.htm SQL Server数据库ROW_ ...

  8. Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

    排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别.我们新建一张Order表并添加一些初始数据方便我们查看效果. CREATE TABLE [dbo].[Order ...

  9. Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)(转载)

    Sql 四大排名函数(ROW_NUMBER.RANK.DENSE_RANK.NTILE)简介   排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别.我们新建一张O ...

随机推荐

  1. C 语言中包含的标准头文件(24个)

    <assert.h><complex.h><ctype.h><errno.h><fenv.h><float.h><intt ...

  2. 经典代码-C宏 #转字符串【瓦特芯 笔记】

    在调试C语言程序时,有时需要打印宏的名字.可以通过定义宏,宏名字的数组来获得. 例如: #include <stdio.h> #define MACRO_STR(x) {x, #x} ty ...

  3. LCA算法

    LCA算法: LCA(Least Common Ancestor),顾名思义,是指在一棵树中,距离两个点最近的两者的公共节点.也就是说,在两个点通往根的道路上,肯定会有公共的节点,我们就是要求找到公共 ...

  4. 如何开发原生的 JavaScript 插件(知识点+写法)

    一.前言 通过 "WWW" 原则我们来了解 JavaScript 插件这个东西 第一个 W "What" -- 是什么?什么是插件,我就不照搬书本上的抽象概念了 ...

  5. application/xml和text/xml的区别

    XML有两个MIME类型,application/xml和text/xml,它们之间的区别是: text/xml忽略xml文件头中的关于编码的设定(<?xml version="1.0 ...

  6. Tiny6410声卡驱动——录音与回放

    在Linux下,音频设备程序的实现与文件系统的操作密切相关.Linux将各种设备以文件的形式给出统一的接口,这样的设计使得对设备的编程与对文件的操作基本相同,对Linux内核的系统调用也基本一致,从而 ...

  7. 在MVC项目中使用RDLC报表

    原文地址:http://www.cnblogs.com/wuhuacong/p/4109833.html RDLC是一个不错的报表,有着比较不错的设计模式和展现效果,在我的Winform开发里面,使用 ...

  8. opennebula 编译日志

    [root@localhost opennebula-]# scons mysql=yes scons: Reading SConscript files ... Testing recipe: xm ...

  9. PHP之路,Day1 - PHP基础

    本节内容  1.PHP介绍  2.第一个PHP脚本程序  3.PHP语言标记  4.指令分割符  5.程序注释  6.在程序中使用空白符的处理  7.变量  8.变量的类型  9.数据类型之间相互转换 ...

  10. ArrayList常用方法

    ArrayList常用方法 import java.util.*; public class JIHe04 { // ArrayList add 添加方法 public static void fun ...