首页 > 解决方案 > 如何处理Oracle 19c 中的“缺少右括号”?

问题描述

我在Oracle 19c 数据库中写了一段代码,用于提取收入超过各自部门平均工资但查询显示“缺少右括号”的员工的工资。任何人都可以帮我解决这个问题,比如错误在哪里以及是什么?

select ename 
from emp 
where sal > (select round(avg(sal)) as avg_sal, deptno 
             from  emp 
             group by deptno 
             order by 2);

标签: sqloracle

解决方案


您可以使用这些查询来完成工作。

select ename 
from emp e1 
where sal > (select round(avg(sal)) as avg_sal
             from  emp e2
             where e2.deptno = e1.deptno 
             );

或者

select e1.ename 
from emp e1,
  (
  select round(avg(sal)) as avg_sal, deptno 
  from  emp 
  group by deptno
  ) e2
where e1.deptno = e2.deptno
and e1.sal > avg_sal
;

推荐阅读