用PL/SQL实现列出重复项,不能使用group by.

猫叔Dino 2008-08-06 05:23:25
如题,[使用table:EMP]
列出薪资(SAL)相等之员工信息,并依SAL由大而小(descending)排序。
(注:如SCOTT与FORD均为3000元; WARD与MARTIN均为1250元,
故这些员工皆应列出)

EMPNO ENAME SAL DEPTNO
--------- ---------- --------- ---------
7788 SCOTT 3000 20
7902 FORD 3000 20
7521 WARD 1250 30
7654 MARTIN 1250 30
使用PL/SQL语言写出,不能使用GROUP BY 和HAVING,以及多表连接的方法.
单纯使用PL/SQL语言.
多谢啊
...全文
208 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
猫叔Dino 2008-08-07
  • 打赏
  • 举报
回复
顶下.
allanmorgan 2008-08-07
  • 打赏
  • 举报
回复

create table emp
(EMPNO ,ENAME, SAL ,DEPTNO
)
as
select '7788','SCOTT',3000,20 from dual
union
select '7521','WARD',1250,30 from dual
union
select '7654','MARTIN',1250,30 from dual
union
select '7903','FORD',3100,20 from dual
union
select '7904','FORD2',3100,20 from dual


select *
from
(
select a.*,count(empno) over(partition by sal) num
from emp a
)
where num>1
order by SAL DESC

--结果:
7903 FORD 3100 20 2
7904 FORD2 3100 20 2
7521 WARD 1250 30 2
7654 MARTIN 1250 30 2
allanmorgan 2008-08-07
  • 打赏
  • 举报
回复

select *
from
(
select a.*,count(empno) over(partition by sal) num
from emp a
)
where num>1
order by SAL desc
bw555 2008-08-07
  • 打赏
  • 举报
回复
select *
from
(
select emp.*,count(empno) over(partition by sal) num
from emp
)
where num>1
猫叔Dino 2008-08-06
  • 打赏
  • 举报
回复
这个貌似用emp和a这两个表...不能用多表...用PL/SQL写....
hebo2005 2008-08-06
  • 打赏
  • 举报
回复
这个也不难

select *
from
(
select a.*,count(empno) over(partition by sal) num
from emp a
)
where num>1

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧