我刚开始学习SQL。我正在使用 Oracle 数据库。
表 emp,列 empno、ename、job、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)