当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. 8.Struts2类型转换器

    类型转换器1.引入在Struts2中,请求参数类型不仅可以是String,还可以是其它类型.如,定义一个请求参数birthday为Date类型,给其赋值为1949-10-1,则birthday接收到的 ...

  2. HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法

    [问题] 用C#模拟网页登陆,其中去请求几个页面,会发起对应的http的请求request,其中keepAlive设置为true,提交请求后,然后会有对应的response: resp = (Http ...

  3. 第三讲:WCF介绍(3)

    代码 https://yunpan.cn/cPns5DkGnRGNs   密码:3913   前面我们通过一个小的例子,大概了解的WCF. 这里我们补充下  EndPoint 配置  A,B,C  中 ...

  4. Liferay 6.2 改造系列之二十四:修改liferay密码的加密方式

    为了便于后期与Cas集成过程中使用数据库用户的方便,将liferay密码的加密方式改为SHA. 在/portal-master/portal-impl/src/portal.properties配置文 ...

  5. Qt编写自定义控件二动画按钮

    现在的web发展越来越快,很多流行的布局样式,都是从web开始的,写惯了Qt widgets 项目,很多时候想改进一下现有的人机交互,尤其是在现有的按钮上加一些动画的效果,例如鼠标移上去变大,移开还原 ...

  6. [MAC] SVN lock的使用

    转载 : http://www.eefocus.com/czzheng/blog/12-03/245532_4ca94.html 如果压根没有锁lock,那么每个人都拥有一个本地copy,每个人都能自 ...

  7. android反编译工具总结

    序:总结反编译主要的目的在于学习.利用反编译进行相关的汉化或修改,都是不道德的! 大家都知道,将apk文件解压后有两部分文件需要处理,一种是xml文件,另一种一个dex文件(.dex),我们可以从.d ...

  8. Web API 依赖注入与扩展

    与 MVC 类似, Web API 提供了System.Web.Http.Services.IDependencyResolver 接口来实现依赖注入, 我们可以很容易的用 Unity 来实现这个接口 ...

  9. SpringMVC对包的扫描范围扩大后,导致的事务配置不生效问题

    问题场景 项目使用的框架:Spring 4.1.4 + Hibernate 4.3.8 + MySQL. web.xml中对Spring的配置: <!-- 把 Spring 容器集成到 Web ...

  10. &quot;《算法导论》之‘图’&quot;:最小生成树(无向图)

    本文主要参考自<算法>. 加权图是一种为每条边关联一个权值或是成本的图模型.这种图能够自然地表示许多应用.在一幅航空图中,边表示航线,权值则可以表示距离或是费用.在一幅电路图中,边表示导线 ...