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;

成功查询到期望数据 :

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

相关推荐
檀越剑指大厂1 小时前
【PostgreSQL系列】PostgreSQL WAL 目录配置
数据库·postgresql
运维行者_3 小时前
Azure数据库监控:如何在2025年选择合适的工具
运维·服务器·网络·数据库·flask·自动化·azure
卜及中8 小时前
【Redis/1-前置知识】分布式系统概论:架构、数据库与微服务
数据库·redis·架构
奈斯ing9 小时前
【prometheus+Grafana篇】基于Prometheus+Grafana实现Redis数据库的监控与可视化
数据库·redis·缓存·grafana·prometheus
在未来等你9 小时前
SQL进阶之旅 Day 23:事务隔离级别与性能优化
sql·mysql·postgresql·高并发·数据一致性·数据库优化·事务隔离
ningmengjing_9 小时前
数据库——MongoDB
数据库·mongodb
海棠一号10 小时前
JAVA理论第七章-MYSQL
java·数据库·mysql
_Chipen11 小时前
6.10 - 常用 SQL 语句以及知识点
数据库·sql·oracle