一道简单的sql面试题:取得工资最高员工信息,求最佳答案

marf_cn 2006-10-20 09:07:00
从table中取得工资最高员工的信息。
这道题目很简单,我个人想了两种实现方法,但还是不觉得简单,不知道高手有没有其它好的方案?
1
select top 1 * from table
order by salary desc;
2
select * from table
where salary=(select max(salary) from table );
...全文
1090 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
marf_cn 2006-11-10
  • 打赏
  • 举报
回复
没想到一个小小的问题来了这么多弟兄讨论,受益匪浅,加100分散给大家。
xcc610 2006-11-01
  • 打赏
  • 举报
回复
我用一个40万条记录的表测试了一下,第二种办法还是要比第一种加with ties快一些,当然,两个办法都能达到目的
烟灰 2006-10-25
  • 打赏
  • 举报
回复
要是最高工资的人有二个,三个怎么办,

两个语句都不能用。
CrazyRobber 2006-10-23
  • 打赏
  • 举报
回复
在SQL Server中,liangpei2008(逍遥叹)的办法应该很好
select top 1 with ties *
from table
order by salary desc
MAX-长老 2006-10-23
  • 打赏
  • 举报
回复
在排一下序,就差不多了
xjjrocker 2006-10-23
  • 打赏
  • 举报
回复
top1只是第一笔记录,不代表最高记录,max()取出的才是。
jaeger520 2006-10-23
  • 打赏
  • 举报
回复
建議用第二個
gw_delphi 2006-10-23
  • 打赏
  • 举报
回复
select * from (select U.* ,rownum rid from U order by salary desc) where rid=1
sousouwjh 2006-10-23
  • 打赏
  • 举报
回复
select * from table where salary in (Select Max(salary) from table)
tobey 2006-10-23
  • 打赏
  • 举报
回复
测试结果:
第一条用的时间:14秒
第二条用的时间:5秒
todouwang 2006-10-22
  • 打赏
  • 举报
回复
第一种吧,实际情况中,恐怕采用第一种的就多。
所谓的合不合要求,看具体情况了,基本上一个单位,最高就是最高,没有并列一说。
即使多个相同,也只取一个,这就是数据库默认的最值了。就当看运气了
yf110 2006-10-22
  • 打赏
  • 举报
回复
第二个好一些
hfltp 2006-10-22
  • 打赏
  • 举报
回复
top 在 oracle 中就不能使用
在sqlserver中倒是可以
还是第二个好点
liangpei2008 2006-10-21
  • 打赏
  • 举报
回复
declare @t table(id int ,salary int)
insert @t select 1,300
union all select 2,300
union all select 3,200

--加一个With Ties不就可以了嘛!
Select top 1 with ties *
from @t
order by salary desc;
luxuewei5214 2006-10-20
  • 打赏
  • 举报
回复
写个存储过程
dataopen 2006-10-20
  • 打赏
  • 举报
回复
从一个表来记录最高工资的信息,这样就不用再查询了。
zlb_chen 2006-10-20
  • 打赏
  • 举报
回复
楼上讲得不错,严格来说第一个是错话的
  • 打赏
  • 举报
回复
第一个就不符合题意,快也没有用。:)
liangpei2008 2006-10-20
  • 打赏
  • 举报
回复
在数据量,索引一致的前提下:
第二个不会比第一个快的!
solestar 2006-10-20
  • 打赏
  • 举报
回复
楼上的,第二个不会比第一个慢。其实排序是很耗时的!
加载更多回复(5)

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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