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

Oracle 中 ROWNUM 使用问题记录

ROWNUM 使用问题记录(2023-08-17)

  • Oracle 版本: 19.0.0.0.0 Enterprise
  • 现象:今天在项目遇到一个问题,测试人员反馈前一天能看到的数据今天看不到了

用表格举例,这是前一天看到的数据,有9、7、1 这几个数量信息

日期ID数量
XXX19
XXX27
XXX31

今天测试反馈 9 没了,但是库里是有的

ID数量
XXX27
XXX31
XXX41
  • 排查问题:我跟踪代码把SQL拿出来到数据库执行,确实没查出来数值 9 的数据
# SQL 如下(昨天能显示的时候ROWNUM 为<=20)
SELECT dt_date,id,num FROM T WHERE dt_date>=2301 and dt_date<=2307 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_date>=2301 and dt_date<=2307ORDER BY num DESC
) A
WHERE ROWNUM<=10
  • 本次问题根因:
  1. 太久(十多年了)没有使用过Oracle 了特性啥的早忘光光了,不然应该不会犯这个错误
  2. SQL 是老师提供的,我也没想那么多,直接用了,估计老师也可能也没想到吧

相关文章:

Oracle 中 ROWNUM 使用问题记录

ROWNUM 使用问题记录(2023-08-17) Oracle 版本&#xff1a; 19.0.0.0.0 Enterprise现象&#xff1a;今天在项目遇到一个问题&#xff0c;测试人员反馈前一天能看到的数据今天看不到了 用表格举例&#xff0c;这是前一天看到的数据&#xff0c;有9、7、1 这几个数量信息 日期…...

MySQL数据库:内置函数

日期函数 规定&#xff1a;日期&#xff1a;年月日 时间&#xff1a;时分秒 函数名称作用描述current_date()当前日期current_time()当前时间current_timestamp()当前时间戳date(datetime)返回datetime参数的日期部分date_add(date,interval d_value_type)在date中添加…...

【C++杂货铺】探索string的底层实现

文章目录 一、成员变量二、成员函数2.1 默认构造函数2.2 拷贝构造函数2.3 operator2.4 c_str()2.5 size()2.6 operator[ ]2.7 iterator2.8 reserve2.9 resize2.10 push_back2.11 append2.12 operator2.13 insert2.14 erase2.15 find2.16 substr2.17 operator<<2.18 opera…...

c++ day1

定义一个命名空间Myspace&#xff0c;包含以下函数&#xff1a;将一个字符串中的所有单词进行反转&#xff0c;并输出反转后的结果。例如&#xff0c;输入字符串为"Hello World"&#xff0c;输出结果为"olleH dlroW"&#xff0c;并在主函数内测试该函数。 …...

变动的Python爬虫实现

在电商时代&#xff0c;了解商品价格的变动对于购物者和卖家来说都非常重要。本文将分享一种基于Python的实时监控电商平台商品价格变动的爬虫实现方法。通过本文的解决方案和代码示例&#xff0c;您将能够轻松监控商品价格&#xff0c;并及时做出决策。 一、了解需求和目标 在…...

mybatis-plus--配置-(sql)日志输出-自动填充-分页-多数据源-逻辑删除

写在前面&#xff1a; 本文主要介绍mybatis-plus的配置&#xff0c;以后在有的时候在补充。欢迎交流。 文章目录 日志输出自动填充分页全局字段配置多数据源 日志输出 调试的时候需要看执行的sql&#xff0c;这时候就很需要日志来记录查看了。 mybatis-plus的日志配置在yml…...

数据API服务管理功能:解放数据潜力,提升业务效率

数据API服务的重要性 在数字化时代&#xff0c;数据被认为是企业的重要资产。数据API服务的管理功能能够有效帮助企业实现数据的整合和利用。通过合理的数据API服务管理&#xff0c;企业可以更好地解放数据潜力&#xff0c;提升业务效率。 ​ 解放数据潜力 数据API服务管理功…...

云南森林火灾vr消防模拟安全演练系统训练消防员火灾和事故的适应和应对能力

据统计,每一场破坏性地震发生后,会引发次生的灾害,而火灾是其中之一。导致火灾的原因,推测是地震时使供电线路短路,引燃易燃物,火灾就随即发生。所以,在日常生活中,定期的消防演练还是非常必要的, VR消防&#xff0c;是VR公司深圳华锐视点利用VR虚拟现实技术&#xff0c;将VR和…...

(6)(6.2) 任务命令

文章目录 前言 6.2.1 概述 6.2.2 导航命令 6.2.3 条件命令 6.2.4 DO命令 前言 本文介绍了 Copter、Plane 和 Rover 切换到自动模式时支持的任务指令。 &#xff01;Warning 这是一项正在进行中的工作&#xff0c;尚未经过全面审核。有关 Copter 的更佳列表&#xff0c;请…...

【consul】

consul 一、什么是服务注册与发现1.11.2 二、 什么是consul2.1定义2.2特性2.2.1服务注册与发现&#xff1a;2.2.2健康检查&#xff1a;2.2.3Key/Value存储&#xff1a; 三、consul部署-datacenter &#xff1a;指定数据中心名称&#xff0c;默认是dc1。consul &#xff1a;指定…...

Electron环境搭建

Electron是一个优秀的开源框架&#xff0c;用于构建跨平台的桌面应用程序。它基于Chromium和Node.js&#xff0c;使得开发者可以使用Web技术&#xff08;HTML、CSS和JavaScript&#xff09;来构建可在Windows、macOS和Linux等多个操作系统上运行的应用程序。本文将介绍如何搭建…...

MinIO线上扩容实战

硬件投入肯定是随着业务的增长而增长&#xff0c;这就要求中间件平台必须提供水平伸缩机制&#xff0c;MinIO对象存储服务也不例外&#xff0c;本文就详细介绍MinIO的扩容。 Minio支持通过增加新的Server Pool来扩容老的集群。每个Server Pool都是一个相对独立的故障域&#x…...

【微服务】微服务的概论

微服务&#xff1a;构建面向为了解决这个问题&#xff0c;微服务架构应运而生。本文将向您介绍微服务的概念、优势、实现原理以及应用场景&#xff0c;带您领略微服务在构建面向未来的高效应用中的魅力。 一、微服务的概念和优势 微服务是一种将应用拆分为一系列小型、独立服…...

基于Jenkins自动打包并部署docker环境

目录 1、安装docker-ce 2、阿里云镜像加速器 3、构建tomcat 基础镜像 4、构建一个Maven项目 实验环境 操作系统 IP地址 主机名 角色 CentOS7.5 192.168.200.111 git git服务器 CentOS7.5 192.168.200.112 Jenkins git客户端 jenkins服务器 CentOS7.5 192.168…...

jvm 运行时数据区

Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对应的,这些与线程对应的数据区域会随着线程开始和结束而创建和销毁 1.1程序计数器 程序计数器也叫pc寄存器 可以看作是当前线程…...

Jobs Portal求职招聘系统源码v3.5版本

Jobs Portal求职招聘系统 是为求职者和公司发布职位而开发的交互式求职招聘源码。它使求职者能够发布简历、搜索工作、查看个人工作列表。 它将提供各种公司在网站上放置他们的职位空缺资料&#xff0c;并且还可以选择搜索候选人简历。 除此之外&#xff0c;还有一个管理模块供…...

Android kotlin系列讲解(入门篇)使用Intent在Activity之间穿梭

<<返回总目录 上一篇:Android kotlin系列讲解(入门篇)Activity的理解与基本用法 文章目录 1、使用显式Intent2、使用隐式Intent3、更多隐式Intent的用法4、向下一个Activity传递数据5、返回数据给上一个Activity1、使用显式Intent 你应该已经对创建Activity的流程比较…...

音频编码类型及对应的封装文件

音频编码类型及对应的封装文件 如下表格 编码类型解释文件封装audio/mp4a-latmMPEG-4 Audio Advanced Audio Coding (AAC) Low-Overhead Audio Transport Multiplex (LATM) 压缩的音频格式mp4audio/3gpp3rd Generation Partnership Project (3GPP) 定义的音频编码格式3GPaudi…...

初探科研 | 第一次科研经历

1 . 自己的experiences 自己大二下学期中比较幸运加入到科研组里&#xff0c;做的方向是3D人体姿态估计&#xff0c;不过由于是一个全新领域&#xff0c;基本也是自己这个小白探索&#xff0c;所以成果甚微。在八月初由于各种原因退出了组&#xff0c;但是在这期间收获还是蛮多…...

Wireshark数据抓包分析之HTTP协议

一、实验目的&#xff1a; 主要时熟悉wireshark的使用 二、预备知识&#xff1a; HTTP协议的相关知识 what fk&#xff0c;原来只要在右页点击切换&#xff0c;就可以开启2台不同的机器欸&#xff01;nice 三、实验过程&#xff1a; 1.在机器1中通过管理员身份运行hfs之后&a…...

嵌入式系统的实时性能优化详解

嵌入式系统的实时性能优化详解 实时系统概述 实时系统是指能够在规定的时间内完成特定任务的系统&#xff0c;其正确性不仅取决于计算结果的正确性&#xff0c;还取决于结果产生的时间。在嵌入式系统中&#xff0c;实时性能优化至关重要。 实时系统分类 硬实时系统&#xf…...

NCMconverter完整指南:3步解锁NCM音乐文件的终极播放方案

NCMconverter完整指南&#xff1a;3步解锁NCM音乐文件的终极播放方案 【免费下载链接】NCMconverter NCMconverter将ncm文件转换为mp3或者flac文件 项目地址: https://gitcode.com/gh_mirrors/nc/NCMconverter 你是否曾经遇到过这样的情况&#xff1a;从音乐平台下载了心…...

别再只用命令行!Pycharm内置Database工具连接SQLite3的5个高效技巧(含文件路径避坑)

别再只用命令行&#xff01;Pycharm内置Database工具连接SQLite3的5个高效技巧&#xff08;含文件路径避坑&#xff09; 作为一名长期与SQLite3打交道的Python开发者&#xff0c;你是否还在反复切换终端和代码编辑器&#xff0c;用命令行执行sqlite3 test.db&#xff1f;或是为…...

零服务器生产环境监控与日志管理终极指南:保障Web应用稳定运行的10个关键策略

零服务器生产环境监控与日志管理终极指南&#xff1a;保障Web应用稳定运行的10个关键策略 【免费下载链接】zero Zero is a web server to simplify web development. 项目地址: https://gitcode.com/gh_mirrors/ze/zero Zero Server是一款革命性的Web服务器&#xff0c…...

STM32模拟UART实现技术详解

基于STM32的UART模拟实现技术解析1. UART通信基础原理1.1 异步串行通信基础通用异步收发器(UART)作为一种经典的串行通信方式&#xff0c;通过逐位传输实现数据通信。其核心优势在于传输线少、成本低&#xff0c;但相对并行通信速度较慢。异步通信模式下&#xff0c;收发双方的…...

新手必看:在VMware上快速安装openEuler 21.09的完整指南(附网络配置避坑技巧)

在VMware上高效部署openEuler 21.09的实战手册 当开发者首次接触企业级开源操作系统时&#xff0c;往往会被复杂的安装流程和网络配置劝退。作为华为贡献给开放原子基金会的项目&#xff0c;openEuler凭借其对ARM架构的深度优化和安全性设计&#xff0c;正成为云计算和边缘计算…...

基于云平台的智能客服系统实战:架构设计与性能优化指南

最近在负责一个面向多租户的智能客服项目&#xff0c;从零到一踩了不少坑。传统单体架构的客服系统&#xff0c;一到业务高峰期就卡顿、超时&#xff0c;扩容更是噩梦。经过一番折腾&#xff0c;我们最终基于云平台构建了一套相对稳定、可扩展的解决方案。今天就把整个架构设计…...

LED点阵驱动库LEDMatrix:嵌入式硬件时序控制实战指南

1. LEDMatrix 库概述&#xff1a;面向硬件驱动的二维点阵控制框架LEDMatrix 是一个专为嵌入式系统设计的轻量级 C 语言库&#xff0c;核心目标是将抽象的二维布尔数组&#xff08;bool matrix[rows][cols]&#xff09;高效、可靠地映射至物理 LED 点阵屏。其设计哲学并非通用图…...

2D-循环卷积与2D-DFT关系

2D transforms doubly circulant block matrices and 2D circular convolution 图像技术经常处理2D信号&#xff0c;其经常通过2D卷积来处理各种类型的线性滤波。通信中的Delay-Doppler信道便是一个时变的2D高速移动信道&#xff0c;很适合处理2D信号。2D信号可以通过一个MNM\t…...

颠覆式音频编辑:Audacity AI插件的OpenVINO技术应用指南

颠覆式音频编辑&#xff1a;Audacity AI插件的OpenVINO技术应用指南 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 一、价值定位&#xff1a;重新定义音频处理效率边界 在数字内容创作领域&#xff0c;音频后期…...