求问一个sql server 排序order by 的问题

huangkai277 2015-06-26 05:51:20
一个表有10000条数据,两个字段 number ,time

我想从这个表先按time时间字段从大到小排序取出3000条数据,然后再按number号码字段从小到大排序。。这个语句要怎么写?

这条语句没用,查出来只是按时间从大到小排序的, 号码没有从小到大
select top 3000 number,time from table order by time desc,number asc
...全文
82 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2015-06-27
  • 打赏
  • 举报
回复

-- 创建临时表用于保存结果
select number,[time]
 into #result
 from [表名]
 where 1=2

-- 先按time时间字段从大到小排序取出3000条数据
insert into #result(number,[time])
select top 3000 number,[time]
 from [表名]
 order by [time] desc
 
-- 然后再按number号码字段从小到大排序
insert into #result(number,[time])
 select number,[time]
 from [表名] a
 where not exists(select 1 
                              from #result b 
							  where b.number=a.number and b.[time]=a.[time])
 order by a.number

-- 查看结果
select * from #result
xiaoxiangqing 2015-06-27
  • 打赏
  • 举报
回复
select * from (select top 3000 number,time from table order by time desc) a order by number asc
三流角色 2015-06-26
  • 打赏
  • 举报
回复
select * from (select top 3000 number,time from table order by time desc) t order by t.number asc

22,210

社区成员

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

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