当sql中存储的数据量比较大时,在web中 数据显示时都会对数据进行分页,分页不会在客户端进行分页,而是在数据库查询过程中进行了分页。

sql代码:

DECLARE @pageindex INT; --页码
DECLARE @pagesize INT; --每页显示的记录数量
SET @pageindex=;
SET @pagesize=5;
SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY UserName) AS rownumber,* FROM dbo.T_User) u WHERE u.rownumber>(@pageindex-1)*@pagesize AND
u.rownumber<=@pageindex*@pagesize
DECLARE @pageindex INT; --页码
DECLARE @pagesize INT; --每页显示的记录数量
SET @pageindex=2;
SET @pagesize=5; SELECT TOP @pagesize * FROM(SELECT ROW_NUMBER() over(order by id) AS rownumber,* FROM tables) tables1 WHERE rownumber > @pagesize*(@pageindex-1)

在sql中变量定义用关键字DECLARE(注意在定义时一定要给变量加上数据类型,如DECLARE @pageindex INT;),赋值语句为set(如SET @pageindex=1; )

在查询语句中使用ROW_NUMBER()函数生成一个排序列,rownumber函数必须配合ORDER BY分组函数如(ROW_NUMBER() OVER(ORDER BY UserName) AS rownumber)这是一个字段。

sql代码查询结果如下:

以上是在第二页,每页5条。

在查询结果中多了一列,rownumber的排序列,从1开始到数据结束。可以利用此字段进行分页,这样问题就成了我们需要找从第几条开始到第几条的数据了。

这上面的表中加入条件查询,问题就解决了。

WHERE u.rownumber>(@pageindex-1)*@pagesize AND
u.rownumber<=@pageindex*@pagesize

假如每页10条数据,那么查询的时候我们就可以让rownumber>0并且<=10这样就查询到了当前第一页的数据,当我们查询第二页的时候也是就rownumber>11 and <=20

这就是第二页了。

附加:在数据库中存储性别的时候一般是存储1,2。而并不是存入男女。查询出来的结果可以用case进行查询结果的值修改。

例如:SELECT (CASE Gender WHEN '1' THEN '男' WHEN '2' THEN '女' end)AS 性别 FROM dbo.T_User

这样查询出来的结果不再是1和2而是男和女。

sql中对查询出来的数据进行分页的更多相关文章

  1. SQL中Between查询日期时需要注意的地方

    SQL中Between查询日期时需要注意的地方   某个表某个字段是Datetime型 以"YYYY-MM-DD 00:00:00" 存放 (1).例如数据 2009-01-22 ...

  2. oracle 中对查询出来的数据进行切割、截取等操作

    oracle 中对查询出来的数据进行切割.截取等操作 最近遇到一个问题,需要把一个带有,的字符串拆分成多行.通过查询资料,这个操作需要使用以下2个关键知识: 1. REGEXP_SUBSTR函数 这个 ...

  3. exp导出一个表中符合查询条件的数据

    原文地址:exp导出一个表中符合查询条件的数据 作者:charsi 导出一个表中的部分数据,使用QUERY参数,如下导出select * from test where object_id>50 ...

  4. MVC中,查询以异步呈现,分页不用异步的解决方案

    MVC中,查询以异步呈现,分页不用异步的解决方案 这种需求,用一个ASPX页面和一个ASCX分部视图就可以解决了,ASPX提供对ASCX的引用,ASCX显示列表信息,ASPX主页面提供查询功能 < ...

  5. sql语句,查询昨天的数据

    如果在程序中,有前台传来两个时间点:beginTime和endTime,在sql查询中的限制条件就是查询昨天的数据,那么可以这样写: 但是如果在这里要查询昨天的数据的话, 则不能简单地在开始时间的那里 ...

  6. SQL中CRUD C——create 添加数据 R——read 读取数据 U——update 修改数据 D——delete 删除数据

    在SQL server中对数据库的操作: 删除表:drop table 表名修改表:alter table 表名 添加列add 列名 列类型alter table 表名 drop column 列名 ...

  7. SQL中模糊查询的模式匹配

    SQL模糊查询的语法为: “Select column FROM table Where column LIKE 'pattern'”. SQL提供了四种匹配模式: 1. % 表示任意0个或多个字符. ...

  8. SQL中的float类型的数据

    问题1.  如何在SQL中默认的使用float类型的数据 SQL中想要通过计算的方式最快的得到一个float类型的数据,只需要运算的其中一个值后面加上小数点就ok. 比如 :9/2=4 但是 :9/2 ...

  9. wcf+linq to sql中关联查询返回数据问题

    前段时间准备采用wcf+nh框架开发sl程序,发现采用nh开发不适合我的中型.并且快速开发项目,所以综合考量了下,决定采用wcf+linq to sql . 但是此模式也有缺点,也是linq to s ...

随机推荐

  1. zoj 3805 Machine

    Machine Time Limit: 2 Seconds      Memory Limit: 65536 KB In a typical assembly line, machines are c ...

  2. ORA-65096: invalid common user or role name

    CREATE USER xx IDENTIFIED BY yy DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP PROFILE "DEF ...

  3. Linux之read用法

    转载转载:www.cnblogs.com/iloveyoucc/archive/2012/04/16/2451328.html 1.基本读取 #!/bin/bash echo -n "Ent ...

  4. Eclipse无法识别Android真机的解决方法

    使用IORegistryExplorer(在Developer Tool)可以查看连接上的USB设备的信息.选择IOUSB,可以看到名为连线的安卓设备,比如小米idVendor是0x2717. ech ...

  5. JavaScript高级程序设计52.pdf

    表单脚本 表单的基础知识 在HTML中,表单是由<form>元素表示的,在Javascript对应的是HTMLFormElement类型,它继承自HTMLElement,因此具有与其他HT ...

  6. xls 和 xml 数据 排序 绑定 -原创

    xls 和 xml 排序 xml: <?xml version="1.0" encoding="UTF-8"?> <?xml-styleshe ...

  7. weekend110(Hadoop)的 第五天笔记

    (2015年1月24日) 课程目录 01-zookeeper1 02-zookeeper2 03-NN高可用方案的要点1 04-hadoop-HA机制的配置文件 05-hadoop分布式集群HA模式部 ...

  8. Altium Designer6打印PCB 设置

    1.File-->Page Setup     Printer Paper一栏是打印纸的设置,不再罗嗦.     主要是Scaling一栏:ScaleMode项选择:ScaledPrint    ...

  9. c语言数据处理!

    #include "stdio.h" struct { ]; long nume; ]}; ]; float score; }stur; main() { printf(" ...

  10. CodeIgniter开发实际案例-新闻网站【转】

    CodeIgniter开发实际案例-新闻网站 转:http://blog.csdn.net/ict2014/article/details/22104711?utm_source=tuicool&am ...