我剛開始學習SQL。我正在使用Oracle數據庫。PL SQL從列1中選擇第一列,其中列2是唯一的
表emp與列empno,ename,工作,mgr,hiredate,sal,comm,deptno。
我想從每個deptno的ename列中獲取第一條記錄,ename必須按asc排序。
下面的SQL工作:
Select ename
from (Select d.ename
From emp d
Where d.deptno = 10
Order by ename asc)
where rownum <= 1
Union
Select ename
from (Select d.ename
From emp d
Where d.deptno = 20
Order by ename asc)
where rownum <= 1
Union
Select ename
from (Select d.ename
From emp d
Where d.deptno = 30
Order by ename asc)
where rownum <= 1
Union
Select ename
from (Select d.ename
From emp d
Where d.deptno = 40
Order by ename asc)
where rownum <= 1
我想優化它,所以我不需要重寫它,如果我添加一些記錄DEPTNO列。
我SELECT
不同試過像
SELECT ename FROM emp WHERE (SELECT distinct deptno FROM emp)
謝謝:)這正是我需要的。我遇到了問題,最後我忘了命令存在... – Keiishi 2013-03-13 21:16:57
太棒了!如果您有任何疑問,請告訴我。 – 2013-03-13 21:20:46