博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
说说oracle分页的sql语句
阅读量:5049 次
发布时间:2019-06-12

本文共 3824 字,大约阅读时间需要 12 分钟。

说说oracle分页的sql语句,分排序和不排序两种。

当结果集不需要进行排序时,每页显示条数为:rowPerPage,当前页数为:currentPage。
1、 相对来说,这种查询速度会快一些,因为当currentPage小时,嵌套语句查询的结果集小。但当currentPage 变大时,查询速度会慢慢变慢。当结果集很大时,查询第一页跟最后一页的速度会有明显变化。(倾向用这种!)
select * from(
select rownum r,  field1,field2 from table_name where rownum <= currentPage * rowPerPage
where r > (currentPage-1) * rowPerPage 
2、相对来说,这种查询速度会慢一些,无论当currentPage大小,嵌套语句查询的结果集都是一样多的,都是整个结果集。但是,当结果集很大时,查询第一页跟最后一页的速度不会有明显变化。
select * from(
select rownum r,  field1,field2 from table_name 
where r  > (currentPage-1) * rowPerPage  and  r <= currentPage * rowPerPage
当需要进行排序时,以第一种方式进行示例如下:
select * from(
select rownum r, a.* from (
select  field1,field2 from table_name order by field1 
) a where rownum <= currentPage * rowPerPage
) where r > (currentPage-1) * rowPerPage 

还有这个,也是很好用的:

select 
from 
  
(
select 
a.*,rownum row_num 
from 
          
(
select 
from 
tabelTest t 
order 
by 
t.id ) a
  
) b 
where 
b.row_num 
between 
(currentPage-1)*pagesize 
and 
currentPage*pagesize
后台,cs将json传入前台easy-ui的datagrid:
//public string List(int page, int rows, string sort, string order, string DataBase)        {            string where = Common.HqlQeuryHelp.GetWhere(typeof(Model.TIPTOP.CPF_FILE), "CPF01,CPF02,CPF29,CPF31,CPF70,CPF35");            //string OracelStr = "select cpf01,cpf02,cpf29,cpf31,cpk02,cqi02,cqi06,cqi09,cqi06-cqi09 as diff,cpf70,cpf35,rownum as rowi from ";            //  OracelStr += "tekvertps.cqi_file,tekvertps.cpf_file it,tekvertps.cpk_file where cpf31=cpk01 and cpf01=cqi01 and cpf35 is null and rownum<100";                        string OracelStr = "select cpf01,cpf02,cpf29,cpf31,cpk02,cqi02,cqi06,cqi09,cqi06-cqi09 as diff,cpf70,cpf35,rownum as r from ";             OracelStr += "(select cpf01,cpf02,cpf29,cpf31,cpk02,cqi02,cqi06,cqi09,cqi06-cqi09 as diff,cpf70,cpf35,rownum row_num from ";             OracelStr += "tekvertps.cpf_file, tekvertps.cqi_file,tekvertps.cpk_file where cpf31=cpk01 and cpf01=cqi01 and cpf35 is null order by cpf01 ) it ";             OracelStr += "where it.row_num between " + (page-1)*rows +" and " + page*rows;            if (!string.IsNullOrEmpty(where)) { OracelStr += " and " + where; }            OracleDataReader dr = OA.Common.OracleHelper.ExecuteReader(OA.Common.OracleHelper.ConnectionStringTipTopTPS, CommandType.Text, OracelStr, null);            var cpfbll = new BLL.TIPTOP.CPF_FILE(DataBase);            var count = cpfbll.GetTextCount(where);                                List listView = new List();                foreach (var i in dr)                {                    listView.Add(new                    {                        CPF01 = dr["CPF01"].ToString(),                        CPF02 = dr["CPF02"].ToString(),                        CPF29 = dr["CPF29"].ToString(),                        CPF31 = dr["CPF31"].ToString(),                        CPK02 = dr["CPK02"].ToString(),                        CQI02 = dr["CQI02"].ToString(),                        CQI06 = dr["CQI06"].ToString(),                        CQI09 = dr["CQI09"].ToString(),                        DIFF = dr["DIFF"].ToString(),                        CPF70 = Formate_Date((DateTime)dr["CPF70"]),                        CPF35 = dr["CPF35"].ToString()                    });                }                var ret = new                {                    total = count,                    rows = listView                };            return ToJsonString(ret);        }

前台(MVC easyui-datagrid):

員工代號 姓名 部門別 職稱代號 職稱 年度 特休天數 已休天數 未休天數 事假天數 病假天數 到職日期 離職日期

 

 

转载于:https://www.cnblogs.com/Annayang/p/3467119.html

你可能感兴趣的文章
linux字符集修改
查看>>
phpcms 添加自定义表单 留言
查看>>
mysql 优化
查看>>
读书笔记 ~ Nmap渗透测试指南
查看>>
WCF 配置文件
查看>>
动态调用WCF服务
查看>>
oracle导出/导入 expdp/impdp
查看>>
类指针
查看>>
css修改滚动条样式
查看>>
2018.11.15 Nginx服务器的使用
查看>>
Kinect人机交互开发实践
查看>>
百度编辑器UEditor ASP.NET示例Demo 分类: ASP.NET...
查看>>
JAVA 技术类分享(二)
查看>>
android客户端向服务器发送请求中文乱码的问
查看>>
Symfony翻译教程已开课
查看>>
TensorFlow2.0矩阵与向量的加减乘
查看>>
NOIP 2010题解
查看>>
javascript中的each遍历
查看>>
String中各方法多数情况下返回新的String对象
查看>>
浅谈tcp粘包问题
查看>>