Oracle 对Scott下的emp和dept表实现如下的查询:请找出BLAKE所管理的员工信息。
时间: 2023-06-19 09:05:44 浏览: 99
以下是查询语句:
```
SELECT *
FROM emp
WHERE mgr = (SELECT empno FROM emp WHERE ename = 'BLAKE')
```
这条查询语句使用子查询来查找BLAKE的员工编号,然后在emp表中查找mgr等于该员工编号的所有员工信息。这些员工就是由BLAKE管理的员工。
相关问题
Oracle 对Scott下的emp和dept表实现如下的查询:请找出员工工资均大于1000的部门其员工信息【要求使用exists子查询】
可以使用以下SQL语句来实现:
```
SELECT *
FROM emp
WHERE EXISTS (
SELECT *
FROM dept
WHERE emp.deptno = dept.deptno AND dept.deptno IN (
SELECT deptno
FROM emp
GROUP BY deptno
HAVING AVG(sal) > 1000
)
);
```
该查询中,首先使用子查询找到工资平均值大于1000的部门编号,然后在主查询中使用 EXISTS 子查询来判断该部门是否存在员工工资大于1000的员工,如果存在则返回该员工信息。
注意,这里的 emp 和 dept 表都是 Scott 用户下的表,如果要在其他用户下运行,需要修改表名或者授权其他用户访问。
Oracle 对Scott下的emp和dept表实现如下的查询:请找出员工工资均大于1000的部门其员工信息【要求不使用exists子查询】。
可以使用Oracle的分组查询和HAVING子句来实现这个需求:
```
SELECT e.*
FROM emp e
JOIN dept d ON e.deptno = d.deptno
GROUP BY d.deptno
HAVING AVG(e.sal) > 1000;
```
这个查询首先将emp表和dept表通过deptno字段进行JOIN操作,然后按照deptno分组,计算每个部门的员工平均工资。最后,使用HAVING子句过滤出平均工资大于1000的部门,并返回这些部门的员工信息。
阅读全文