我有两个表(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命令未正确结束。
有人可以告诉我这里有什么问题吗?
由于
答案 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;
应该工作。