咱们都知道 sql语句中的排序有desc(降序)、asc(升序),这两个都是按顺序排列的,最近有一个需求是不按顺序排序了 ,抽出个别的排在前面,而且这种需求是应对的问题中的数据是比较少的,并且没有规律可循,用程序处理的话虽然能实现,可是处理起来会复杂不少,下面咱们就经过对order by 后面的排序语句进行处理达到咱们想要的目的sql
在Company表中存储有id,Name(公司名称)等字段,其中id为自增 主键 首先咱们按顺序查出前三条记录(默认升序,其中order by id ASC 可省略)学习
SELECT TOP 3 id,Name FROM dbo.Company ORDER BY Id ASC
下面咱们将第二条数据排在第一位spa
SELECT TOP 3 id,Name FROM dbo.Company order by (case Id when 2 then 0 else Id end) ASC --或者 SELECT TOP 3 id,Name FROM dbo.Company order by (case Id when 2 then 0 else 1 end),Id asc
这样就实现了想要的结果,这里只是给你们提供一个此类问题的解决思路,你们有什么好的办法欢迎交流。个人qq是1066494108,之后会不按期更新一些工做中遇到的问题的结局方案和平时学习和生活中心得体会。但愿你们多多指教。。。code