怎么实现按工资前10名和后10名的职工情况表

zdh19821025 2006-07-18 10:37:06
在sql server中怎么实现按工资前10名和后10名的职工情况表。只需大概的思路用sql实现
...全文
212 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsforever 2006-07-18
  • 打赏
  • 举报
回复
如果9、10、11工资都一样的情况都算是前10的话,还可以用如下的方法
select * from T where
(select count(1) from T T1 where T1.salary > T.salary) <= 9
or
(select count(1) from T T2 where T2.salary < T.salary) <= 9
Mark2Win 2006-07-18
  • 打赏
  • 举报
回复
哦对对对, 好久不用有些生疏了.
谢楼上.
playwarcraft 2006-07-18
  • 打赏
  • 举报
回复
--一樓的寫法不正確的,union中不能2個order by
--用臨時表好了
select * into #t1 from (select top 10 * from T order by 工资 desc) A
select * into #t2 from (select top 10 * from T order by 工资) B

select * from #t1
union all
select * from #t2
godfather_wang 2006-07-18
  • 打赏
  • 举报
回复
对工资进行排名,插入一个名次列,放入临时表中,取前十名(不是top 10),
再按倒序排一下,再取前十名就是了!!!
playwarcraft 2006-07-18
  • 打赏
  • 举报
回复
select top 10 * from T order by 工资 desc

select top 10 * from T order by 工资
Mark2Win 2006-07-18
  • 打赏
  • 举报
回复
要在一张表显示:

Select Top 10 xxx
Order by 工资 -顺序排列
Union
Select Top 10 xxx
Order by 工资 DESC -倒序排列
zsforever 2006-07-18
  • 打赏
  • 举报
回复
建议用临时表
本机:select * from 数据库.dbo.表
远程:SELECT * FROM OPENROWSET('MSDASQL','DRIVER={SQL Server};SERVER=地址;UID=用户名;PWD=密码',数据库.dbo.表)
取他们分别符合的数据再合并一起来查询
jinliangyun 2006-07-18
  • 打赏
  • 举报
回复
谢谢各位,接下来的问题还有就是如果查询的是多个数据库里面的内容,从这多个数据库里面查询出前10名和后10名的,有没有什么办法。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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