当前位置: 首页 > news >正文

青岛网站建设与设计制作宝安建网站

青岛网站建设与设计制作,宝安建网站,黄页推广软件网站,关于网站设计的新闻ROWNUM 使用问题记录(2023-08-17) Oracle 版本#xff1a; 19.0.0.0.0 Enterprise现象#xff1a;今天在项目遇到一个问题#xff0c;测试人员反馈前一天能看到的数据今天看不到了 用表格举例#xff0c;这是前一天看到的数据#xff0c;有9、7、1 这几个数量信息 日期…ROWNUM 使用问题记录(2023-08-17) Oracle 版本 19.0.0.0.0 Enterprise现象今天在项目遇到一个问题测试人员反馈前一天能看到的数据今天看不到了 用表格举例这是前一天看到的数据有9、7、1 这几个数量信息 日期ID数量XXX19XXX27XXX31 今天测试反馈 9 没了但是库里是有的 ID数量XXX27XXX31XXX41 排查问题我跟踪代码把SQL拿出来到数据库执行确实没查出来数值 9 的数据 # SQL 如下昨天能显示的时候ROWNUM 为20 SELECT dt_date,id,num FROM T WHERE dt_date2301 and dt_date2307 AND ROWNUM 10ORDER BY num DESC比较奇怪的是 ROWNUM 20 的时候能查出来为9 的那一条数据其实即使查出来 9 数据结果也不对因为还有一条数值为 12 的 先是改回 ROWNUM 20 确实能看到数值为9 的那一条数据了但是还有一个数值12的没有查出来还是不对通过回忆MYSQL的写法结合查询结果现象推测Oracle SQL 执行顺序与MYSQL不一样 在MYSQL中上述SQL执行结果是正常的会取出数值为9 、12 的数据MySql 会先执行Order By 操作然后执行 Limit 取值并且 Limit 会在Where 条件后执行在Oracle中就不行了这里使用到了ROWNUM而 ROWNUM 是写在 Where 条件中的SQL 执行过程与Mysql 就产生了差异根据现象得知Oracle先得到结果然后生成虚拟的ROWNUM再然后执行WHERE条件最后 Orader By 操作这样就出现了与测试反馈的一样的结果取值在前排序在后所以取出来的值如果刚巧数据满足要求时就不容易看出来问题 解决问题通过包装一层SQL来处理这个问题先排序再取值 # 通过嵌套SQL查询解决 SELECT * FROM (SELECT dt_date,id,num FROM T WHERE dt_date2301 and dt_date2307ORDER BY num DESC ) A WHERE ROWNUM10本次问题根因 太久(十多年了)没有使用过Oracle 了特性啥的早忘光光了不然应该不会犯这个错误SQL 是老师提供的我也没想那么多直接用了估计老师也可能也没想到吧
http://www.dnsts.com.cn/news/63536.html

相关文章:

  • 旅游公司网站难做吗制作游戏的网站
  • 网站制作零基础学习2345官网
  • 做搜狗网站优化点击软网站建设的理由
  • 网站建设吴江网站生成器怎么做
  • 做化工类网站内容为什么选php语言做网站
  • 建网站的每年有费用建设网站目的及功能定位是什么
  • 网站开发流程详解套模板做网站电话
  • 投放广告的网站南宁在哪里可以做网站
  • 余姚本地网站排名页游排行榜2022
  • 界面漂亮的网站网站备案证书在哪里下载
  • 长宁建设机械网站水产食品企业网站模板
  • 设计网站外网网站权重高+做别的关键词
  • wap建站教程网站建设项目目标描述
  • 新密网站建设我赢seo
  • 济南市住房建设网站网站如何带来流量
  • 腾讯广告投放端提供的建站工具有有哪些网站是cms
  • 房地产公司网站源码深圳十大品牌策划公司
  • dede手机网站360网址导航上网
  • 网站建设一点通wordpress修改首页代码
  • 济南网站建设哪家公司好丰台网站建设公司电话
  • 网站服务器租赁多少钱团队做网站分工
  • 郑州网站开发网站开发怎样做网站底部导航
  • 上海微信小程序网站建设网站建设意见征求
  • 网站建设公司平台新网站怎么运营
  • 电商网站建设注意如何苗木网站建设
  • 昊诺网站建设网络推广潢川微信网站建设
  • 基于php网站开发的参考文献手机app设计网站
  • 专业科技公司网站欣赏智慧团建网页手机版官网
  • 东莞网站建设网站制作公司有网页源码 怎么做网站
  • 新手用什么程序建网站公司网站域名和空间使用费