Oracle使用fetch first子句报错:ORA-00933 SQL命令未正确结束

问题背景

今天在统计终端厂商告警次数Top10的时候使用SQL查询使用到了fetch first子句,结果执行报错:ORA-00933 SQL命令未正确结束。

报错原因

Oracle数据库中,使用 FETCH FIRST 子句需要启用 Oracle 12c 及以上版本。如果在较低版本的 Oracle中使用FETCH FIRST 子句则会报错。如图(公司是内网环境开发,无法访问外网,截图没办法传到手机上,只能拍照记录):

解决方案

通过子查询和 ROWNUM 来实现同样的功能,代码如下:

sql 复制代码
SELECT vendor_name, total_faults
FROM (
    SELECT vendor_name, SUM(fault_count) AS total_faults
    FROM your_table_name
    GROUP BY vendor_name
    ORDER BY total_faults DESC
)
WHERE ROWNUM <= 10;

成功查询到期望数据 :

注:图片数据均为研发环境模拟数据,如有雷同纯属巧合。

相关推荐
一只fish18 分钟前
MySQL 8.0 OCP 1Z0-908 题目解析(16)
数据库·mysql
泊浮目1 小时前
未来数据库硬件-网络篇
数据库·架构·云计算
静若繁花_jingjing1 小时前
Redis线程模型
java·数据库·redis
飞翔的佩奇2 小时前
Java项目:基于SSM框架实现的忘忧小区物业管理系统【ssm+B/S架构+源码+数据库+毕业论文+开题报告】
java·数据库·mysql·vue·毕业设计·ssm框架·小区物业管理系统
亚马逊云开发者3 小时前
全景解读亚马逊云科技的 GenBI 解决方案:三大路径助力企业智能决策升级
sql·llm
ZWZhangYu8 小时前
LangChain 构建向量数据库和检索器
数据库·langchain·easyui
feifeigo1239 小时前
升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
数据库·mysql·adb
火龙谷11 小时前
【nosql】有哪些非关系型数据库?
数据库·nosql
焱焱枫12 小时前
Oracle获取执行计划之10046 技术详解
数据库·oracle
双力臂40413 小时前
MyBatis动态SQL进阶:复杂查询与性能优化实战
java·sql·性能优化·mybatis