0

我对在 where 子句之后或在提到 table_name 之后的任何地方使用聚合函数感到完全困惑

EMP 表发布在http://viditkothari.co.in/post/27045365558/sql-commands-1

查询信息:
显示所有sal等于deptno 30的任何emp的emp

建议查询:

select * 
  from employee_4521 
 where sal having (select sal 
                     from employee_4521 
                    where deptno = 30);

返回以下错误:

第 1 行的错误:
ORA-00920:无效的关系运算符

在有子句的“h”下标有星号

4

1 回答 1

2

似乎没有任何理由在这里使用聚合函数。只需使用一个IN或一个EXISTS

select * 
  from employee_4521 
 where sal in (select sal 
                 from employee_4521 
                where deptno=30);

或者

select * 
  from employee_4521 a
 where exists( select 1
                 from employee_4521 b
                 where b.deptno = 30
                   and a.sal = b.sal );
于 2012-08-10T02:57:01.503 回答