【问题标题】:pl/sql query to find out the manager name by deptnopl/sql 查询以通过 deptno 查找经理名称
【发布时间】:2017-03-20 06:17:36
【问题描述】:

pl/sql 查询通过 deptno 查找经理名称

DECLARE
V_ENAME EMP.ENAME%TYPE; 
BEGIN 
FOR I IN (SELECT distinct  DEPTNO FROM EMP) 
LOOP 
SELECT ENAME INTO V_ENAME FROM EMP 
 WHERE JOB='MANAGER' AND DEPTNO=I.DEPTNO; 
DBMS_OUTPUT.PUT_LINE('THE NAME OF THE MANAGER IN '||I.DEPTNO||' IS '||V_ENAME);
END LOOP;
END;

【问题讨论】:

  • 问题是什么?
  • 没有 PL/SQL 查询之类的东西。

标签: plsql plsqldeveloper


【解决方案1】:

工作正常

DECLARE
V_ENAME EMP.ENAME%TYPE; 
BEGIN 
FOR I IN (SELECT distinct  DEPTNO FROM EMP) 
LOOP 
SELECT ENAME INTO V_ENAME FROM EMP 
WHERE JOB='MANAGER' AND DEPTNO=I.DEPTNO; 
DBMS_OUTPUT.PUT_LINE('THE NAME OF THE MANAGER IN DEPARTMENT '||I.DEPTNO||' IS '||V_ENAME);
END LOOP;
END;

打印

THE NAME OF THE MANAGER IN DEPARTMENT 30 IS BLAKE THE NAME OF THE MANAGER IN DEPARTMENT 20 IS JONES THE NAME OF THE MANAGER IN DEPARTMENT 10 IS CLARK

【讨论】:

    【解决方案2】:

    由于我不知道这个线程的意义何在,我将提供简单的 SQL 查询来执行问题中所要求的 - 获取部门的 deptno 和经理的姓名(使用标量子查询)。

    select d.deptno,
           (select e.ename
              from emp e
             where e.deptno = d.deptno
               and e.job = 'MANAGER') manager
      from dept d;
    

    这里没有理由使用 PL/SQL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 2010-09-22
      • 1970-01-01
      • 2021-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多