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

avatar
作者
筋斗云
阅读量:2

问题背景

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

报错原因

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

解决方案

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

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;

成功查询到期望数据 :

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!