0

我有以下两个表(DEPT 和 EMP):

DEPT

DEPTNO,DNAME,LOC

EMP

EMPNO, ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO

我正在执行以下查询:“使用 UNION 显示部门编号和名称以及员工编号和名称。选择适当的列标题并按名称升序对其进行排序。”

这是我的查询:

SELECT Deptno, Dname 
FROM DEPT
ORDER BY Dname ASC
UNION
SELECT EMPNO,ENAME 
FROM   EMP
ORDER BY ENAME ASC;

我想知道为什么会出现以下错误:

第 4 行的 UNION * 错误:ORA-00933:SQL 命令未正确结束。

谁能告诉我这里有什么问题?

谢谢

4

2 回答 2

2

尝试这个

SELECT Deptno AS ID, Dname  AS NAME
FROM DEPT
UNION
SELECT EMPNO  AS ID,ENAME  AS NAME
FROM   EMP
ORDER BY NAME ASC

编辑

要显示四列,请使用联接检查以下查询

SELECT E.EMPNO ,E.ENAME ,D.Deptno , D.Dname 
FROM DEPT D
INNER JOIN 
EMP E ON E.DeptNO = D.DeptNo
ORDER BY E.ENAME ASC
于 2013-04-20T09:50:19.090 回答
0

Remove ORDER BY clause in the first query.

So change to:

SELECT Deptno, Dname 
FROM DEPT
UNION
SELECT EMPNO,ENAME 
FROM   EMP
ORDER BY Dept.Dname, Emp.Ename ASC;

Should work.

于 2013-04-20T09:42:47.647 回答