0

次の 2 つのテーブル (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 コマンドが正しく終了していません。

ここで何が問題なのか誰か教えてください。

ありがとう

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

編集

4 つの列を表示するには、結合を使用してクエリの下にチェックを入れます

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

ORDER BY最初のクエリで句を削除します。

したがって、次のように変更します。

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

動作するはずです。

于 2013-04-20T09:42:47.647 に答える