位置: 编程技术 - 正文

详解SQLServer和Oracle的分页查询(oracle和sqlserver的区别)

编辑:rootadmin

推荐整理分享详解SQLServer和Oracle的分页查询(oracle和sqlserver的区别),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:sql server跟oracle的区别,oracle与sqlserver的区别,sqlserverand和or连用,sqlserverand和or连用,sqlserver与oracle区别,sqlserver与oracle 语句区别,sqlserver和oracle,sqlserverand和or连用,内容如对您有帮助,希望把文章链接给更多的朋友!

不管是DRP中的分页查询代码的实现还是面试题中看到的关于分页查询的考察,都给我一个提示:分页查询是重要的。当数据量大的时候是必须考虑的。之前一直没有花时间停下来好好总结这里。现在又将Oracle视频中关于分页查询的内容看了一遍,发现很容易就懂了。

详解SQLServer和Oracle的分页查询(oracle和sqlserver的区别)

1.分页算法 最开始我在网上查找资料的时候,看到很多分页内容,感觉很多很乱。其实不是这样。网上那些资料大同小异。问题出在了我自己这里。我没搞明白进行分页的前提是什么?我们都知道只要有分页都会涉及这些变量:每页又多少条记录(pageSize)、当前页(pageNow)、总记录数(totalRecords)、总页数(totalPages)、开始页(beginRow)、结束页(endRow)。网上的那些资料分页算法有用到pageSize的,有用到beginPage还有用到endPage.其实这些变量需要分类:我将他们分为三类: A.需要从数据库中查询出来的:totalRecords. " select count(*) from tableName" B.最基本的需要用户提供的:pageSize和pageNow.(个人觉得这是分页算法的前提) C.从其他变量计算得来的:totalPages、beginRow和endRow.(这里需要计算出beginRow和endRow是由于分页查询中需要用到,totalPages是页面需要提供的信息)。具体的计算公式:

这样这些变量的值就都可以获得了。具体怎么使用请接着看2和3部分。

2.Oracle中的常用分页方法 其实不管是Oracle还是SQLServer,实现分页查询的基础都是子查询。用我自己的话说就是:select中套select。 Oracle分页方式有三种。我这里只讲一种容易理解的。以员工表(emp)为例。假设有条记录,现在分页要求每页5条记录,当前页为2.则查询出来的是记录为6-。我们先用具体的数字做,然后再换成变量。 Oracle实现第一步:select a.*,rownum rn from (select * from emp) a;其中rownum是Oracle内部分配行号。括号中的select * from emp是将emp表中的记录全部查询出来。然后我们再将查询出来的结果作为视图进一步查询。外面的select除了查询emp的全部以外再加一个rownum,以便后面的查询使用。 Oracle实现第二步:select a.*,rownum rn from (select * from emp) a where rownum<= ;第二步加条件查询出行号小于等于的记录。这里可能会有这样的疑问为什么不直接写rownum>=6 and rownum<=.不就解决问题了。这里Oracle内部机制不支持这种写法。 Oracle实现第三步:select * from (select a.*,rownum rn from (select * from emp) a where rownum<=) where rn>=6 ;ok,这样就可以完成查询6-条记录了。 最后。我们转换为变量。可能是在java程序中也可能是在pl/sql中。 需要转换的又三个:“emp”的位置为具体表名、“6”的位置 为(pageNow-1) * PageSize +1 、“"的位置 为 pageNow * PageSize。 这种方式可以作为模板使用,修改起来很方便。所有改动只需要改动最里层就可以了。比如查询指定列的情况:修改最里层select ename,sal from emp;根据薪水列排序:select ename,sal from emp order by sal;都只需要修改最里层。

3.SQLServer中的常用分页方法 我们还是采用员工表的例子讲SQLServer中分页的实现 第一种TOP的使用:SQLServer实现第一步:select top * from emp order by empid ;按照员工ID升序排列,取出前条记录。SQLServer实现第二步:select top 5* from (select top * from emp order by empid ) a order by empid desc 。将取出的条记录按员工号降序排列再取出5条记录。这里的第一次用升序排序,第二次用降序排序是巧妙之处。没有想到top能起到这样的效果。这里的的位置用变量pageNow * PageSize代替而5用PageSize 代替。 第二种Top和In的使用:select top 5 * from emp where empid in (select top empid from emp order by empid) order by empid desc; 这里的的位置用变量pageNow * PageSize代替而5用PageSize 代替。 其他查询都是大同小异的,这里不再赘述。

标签: oracle和sqlserver的区别

本文链接地址:https://www.jiuchutong.com/biancheng/347407.html 转载请保留说明!

上一篇:win10安装Sql Server 2014图文教程(win10安装sqlserver2016出错)

下一篇:java 连接sql server2008数据库配置(java连接sqlserver数据库对象名无效)

  • 待抵扣税金怎么算
  • 所得税汇算清缴时间期限
  • 硬盘录像机开发板
  • 定额扣除个税什么意思
  • 哪些收入应该纳入到个人所得税
  • 纳税筹划成本支出怎么算
  • 自然人转让股权给自己的公司
  • 业务招待费扣除计算
  • 隔月的发票冲红了税怎么办
  • 预付账款转入其他非流动资产
  • 无偿赠送材料的会计处理
  • 微信提现手续费最新规定
  • 聘用人员工资福利待遇
  • 房地产建造运费怎么计算
  • 营改增对建筑行业税负的影响
  • 买酒专票怎么可以抵税
  • 停车场企业所得税税率
  • 对外支付类型
  • 中国公司可以给境外公司开发票吗
  • 对外捐赠会计和税法差异调整
  • 餐饮业会计做账技巧
  • 2019年税改前后税率对比
  • bios怎么恢复出厂设置会怎么样
  • 共同编辑app
  • 发票失控进项转出所得税
  • 未担保余值通俗理解
  • 笔记本屏幕清洁剂推荐
  • mds是什么进程
  • 注册造价师挂靠费怎么缴纳个税
  • 汇兑损失是否可以抵扣
  • 维保服务的税率是多少
  • Css中的color属性用于设置html元素的背景颜色
  • 人工智能科技向善
  • ijk解码是什么意思
  • 员工离职补偿怎么入账
  • 离线开票限额怎么办
  • 季初从业人数和季末从业人数怎么填
  • phpcms教程
  • 签劳动合同员工突然离职怎么办
  • 购买加油卡如何做会计分录
  • 用vue做的企业项目
  • 公司车辆保险费要交印花税吗
  • 内帐税金会计分录
  • 以发行股票作为对价取得企业的股权
  • 收取水电费计入什么科目
  • 采用汇兑的方式归还前欠货款
  • 亏损企业所得税汇算清缴怎么做
  • 其他收益和其他综合收益属于什么科目
  • 其他应付款货方余额表示什么
  • 冲销上年多计提费用
  • 购买税控系统的增值税怎么处理
  • 快递公司成本分析
  • 购买固定资产的增值税计入成本吗
  • 信用卡什么情况下会被冻结
  • 车保险说给返钱是真的吗
  • 兼职会计如何做账报税
  • 如何查询公司的营业执照照片
  • 金税盘的维护费每年怎么抵扣
  • 现金投资属于什么会计科目
  • 财税公司工作内容
  • 无形资产摊销如何记账
  • mysql设计树形数据库
  • window系统怎么取消开机密码
  • 个人pc用户免费下载软件
  • cocos2d-js教程
  • jquery的实现原理
  • 批处理传输文件夹到ftp
  • perfcurve函数
  • 写个置顶
  • 视锥是什么意思
  • linux shell终端
  • Python快速从注释生成文档的方法
  • 走出JavaScript初学困境—js初学
  • python使用pymysql实现操作mysql
  • JQuery点击行tr实现checkBox选中的简单实例
  • 稽查局是税务局的派出机构还是内设机构
  • 电子口岸无纸化网上签约流程
  • 个税申报所属期和所得期
  • 苏宁易购股份转增股本
  • 关于企业所得税的说法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设