sql中对查询出来的数据进行分页
当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中对查询出来的数据进行分页的更多相关文章
- SQL中Between查询日期时需要注意的地方
SQL中Between查询日期时需要注意的地方 某个表某个字段是Datetime型 以"YYYY-MM-DD 00:00:00" 存放 (1).例如数据 2009-01-22 ...
- oracle 中对查询出来的数据进行切割、截取等操作
oracle 中对查询出来的数据进行切割.截取等操作 最近遇到一个问题,需要把一个带有,的字符串拆分成多行.通过查询资料,这个操作需要使用以下2个关键知识: 1. REGEXP_SUBSTR函数 这个 ...
- exp导出一个表中符合查询条件的数据
原文地址:exp导出一个表中符合查询条件的数据 作者:charsi 导出一个表中的部分数据,使用QUERY参数,如下导出select * from test where object_id>50 ...
- MVC中,查询以异步呈现,分页不用异步的解决方案
MVC中,查询以异步呈现,分页不用异步的解决方案 这种需求,用一个ASPX页面和一个ASCX分部视图就可以解决了,ASPX提供对ASCX的引用,ASCX显示列表信息,ASPX主页面提供查询功能 < ...
- sql语句,查询昨天的数据
如果在程序中,有前台传来两个时间点:beginTime和endTime,在sql查询中的限制条件就是查询昨天的数据,那么可以这样写: 但是如果在这里要查询昨天的数据的话, 则不能简单地在开始时间的那里 ...
- SQL中CRUD C——create 添加数据 R——read 读取数据 U——update 修改数据 D——delete 删除数据
在SQL server中对数据库的操作: 删除表:drop table 表名修改表:alter table 表名 添加列add 列名 列类型alter table 表名 drop column 列名 ...
- SQL中模糊查询的模式匹配
SQL模糊查询的语法为: “Select column FROM table Where column LIKE 'pattern'”. SQL提供了四种匹配模式: 1. % 表示任意0个或多个字符. ...
- SQL中的float类型的数据
问题1. 如何在SQL中默认的使用float类型的数据 SQL中想要通过计算的方式最快的得到一个float类型的数据,只需要运算的其中一个值后面加上小数点就ok. 比如 :9/2=4 但是 :9/2 ...
- wcf+linq to sql中关联查询返回数据问题
前段时间准备采用wcf+nh框架开发sl程序,发现采用nh开发不适合我的中型.并且快速开发项目,所以综合考量了下,决定采用wcf+linq to sql . 但是此模式也有缺点,也是linq to s ...
随机推荐
- WordPress RokNewsPager插件‘thumb.php’多个安全漏洞
漏洞名称: WordPress RokNewsPager插件‘thumb.php’多个安全漏洞 CNNVD编号: CNNVD-201309-369 发布时间: 2013-09-24 更新时间: 201 ...
- SharePoint 2010中使用Visual Studio 2010进行方便快速的Web Part开发
转:http://www.cnblogs.com/fatwhale/archive/2010/02/24/1672633.html 在Visual Studio 2010中, 已经集成了用于Shar ...
- (转载)Linux一句话精彩
(转载)http://bjsfly.blog.163.com/blog/static/161276642007845228371/ 0001[url=111]111[/url] [ 本帖最后由 bjc ...
- Oracle 视图添加主键
在Entity Framework中,从数据库生成模型,视图常报无主键. 解决办法:为试图添加主键/复合主键 create or replace view view_activebudgetamoun ...
- (转载)TRS内容管理平台用户注册逻辑漏洞
首先 site:gov.cn inurl:WCM TRS 的内容管理系统是国内政府网站使用最多的系统之一 如上面所说:外交部 http://wcm.fmprc.gov.cn/wcm/ 网址加上:wcm ...
- Kruskal算法构造最小生成树
Kruskal算法来构造最小生成树,我总结了分为以下步骤: (1)建图,构造Kruskal边集,边集元素应该包括该边的起始顶点.终止顶点.权值: (2)将边集按权值从小到大的顺序进行排序: (3)从小 ...
- struts1与strut2的区别
struts1和struts2是两个完全不同的框架 struts1工作流程:发布Struts Web服务时,根据web.xml初始化ActionServlet,ActionContext等内容.在接到 ...
- YII 表单验证规则
官方文档:http://www.yiichina.com/guide/form.model 类参考手册:http://www.yiichina.com/api/CValidatorhttp://www ...
- pom.xml第一行报错
错误:Cannot detect Web Project version. Please specify version of Web Project through <version> ...
- PyDev+eclipse的编码问题
1.在代码的开始声明编码为utf-8