看看下面两个sql语句

djh512 2011-07-13 08:43:24
要求是 如何显示高于自己部门平均工资的员工信息
表就是oracle自带的emp表 ,我写了两种方法
1.select * from emp a1 where a1.sal > (select avg(sal) from emp a2 where a2.deptno = a1.deptno);
2.select a.ename, a.sal from emp a,
(select deptno, avg(sal) mysal from emp group by deptno) temp
where a.deptno = temp.deptno and a.sal > temp.mysal;

两种方法的结果都是一样的,第二种是给出的答案,我不知道第一种写法是不是对的
...全文
58 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋雨飘落 2011-07-13
  • 打赏
  • 举报
回复
第一个写法应该还会快点。
wallace_jjh 2011-07-13
  • 打赏
  • 举报
回复
第一种的写法应该也是正确的
tangren 2011-07-13
  • 打赏
  • 举报
回复
两种方法都是正确的!
Rotel-刘志东 2011-07-13
  • 打赏
  • 举报
回复
如果写法达到的效果是一样的。那就要看执行计划了,那个执行的效率更高一些了。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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