UNION查询错误

时间:2013-04-20 09:36:33

标签: sql oracle oracle11g

我有两个表(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;

我想知道为什么我收到以下错误:

  

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

有人可以告诉我这里有什么问题吗?

由于

2 个答案:

答案 0 :(得分:2)

试试这个

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

修改

要显示四列,请使用join

检查以下查询
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

答案 1 :(得分:0)

删除第一个查询中的ORDER BY子句。

所以改为:

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

应该工作。