怎么使满足条件的记录排在前面?

tianshuang.me 2015-07-24 10:17:47


怎么使c2_id为2或3或4的记录排在前面,c2_id不满足条件的排在后面,相同c2_id再按时间排序?
...全文
222 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zbdzjx 2015-07-27
  • 打赏
  • 举报
回复
如果c2_id不是2、3、4的也要按c2_id排序,如下:
select * from t
order by case c2_id  when 2 then 0 when 3 then 1 when 4 then 2 else 99 end ,c2_id,
ask_time
道玄希言 2015-07-25
  • 打赏
  • 举报
回复
最土的办法: select * from tbl where c2_id = 2 order by ask_time union all select * from tbl where c2_id = 3 order by ask_time union all select * from tbl where c2_id = 4 order by ask_time union all select * from tbl where c2_id not in ('2', '3', '4') order by c2_id, ask_time
道玄希言 2015-07-25
  • 打赏
  • 举报
回复
三楼这么写, 将所有除2,3,4 之外的不同ID,都变成 99 了, 那除2,3,4 之外 c2_id, 会不会再次排序?
ChinaITOldMan 2015-07-25
  • 打赏
  • 举报
回复
楼上方法正确
卖水果的net 2015-07-25
  • 打赏
  • 举报
回复

select * from t
order by case c2_id  when 2 then 0 when 3 then 1 when 4 then 2 else 99 end ,
ask_time


tianshuang.me 2015-07-25
  • 打赏
  • 举报
回复
求教有木有更简洁的写法
卖水果的net 2015-07-25
  • 打赏
  • 举报
回复
引用 5 楼 yangb0803 的回复:
三楼这么写, 将所有除2,3,4 之外的不同ID,都变成 99 了, 那除2,3,4 之外 c2_id, 会不会再次排序?
可以再排序。 就是增加一个排序字段。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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