oracle之> ORA-00933: SQL 命令未正确结束

错误提示:> ORA-00933: SQL 命令未正确结束

初涉oracle,有些语法还不是很清楚,实际开发过程出现这样的报错提示,凭着原本做项目的sql server经验检查了语句,没发现任何异样,百思不得其解。度娘之后,说是在oracle sql中,要求order by是select语句的最后一个语句,而且一个select语句中只允许出现一个order by语句,而且order by必须位于整个select语句的最后。然后再看一眼自己写的oracle sql似乎明白了,照着这样的规则调整后,果真可以了。上代码例子比较形象。

原本报错的语句:

报错的oracle语句

因为使用的UNION ALL连接合并两次结果集,使用了GROUP BY的缘故,默认语句结束,导致后面的UNION ALL无法识别到,就变成了未正确结束。

调整后语句如下:

调整后的oracle语句

主要修改原则是将原来的两个UNION ALL的语句改成如下格式:

调整格式

先分别查出上下两个结果集,再讲结果集合并。

好记性不如烂笔头,记录如上,共勉之。

你可能感兴趣的:(oracle之> ORA-00933: SQL 命令未正确结束)