sql 按指定规则排序,例如 按 1,3,2排序 而不是1,2,3

    我们都知道 sql语句中的排序有desc(降序)、asc(升序),这两个都是按顺序排列的,最近有一个需求是不按顺序排序了 ,抽出个别的排在前面,并且这种需求是应对的问题中的数据是比较少的,而且没有规律可循,用程序处理的话虽然能实现,但是处理起来会复杂很多,下面我们就通过对order by 后面的排序语句进行处理达到我们想要的目的

    在Company表中存储有id,Name(公司名称)等字段,其中id为自增 主键 首先我们按顺序查出前三条记录(默认升序,其中order by id ASC 可省略)

SELECT TOP 3 id,Name FROM dbo.Company ORDER BY Id ASC 

sql 按指定规则排序,例如 按 1,3,2排序 而不是1,2,3_第1张图片

下面我们将第二条数据排在第一位

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

sql 按指定规则排序,例如 按 1,3,2排序 而不是1,2,3_第2张图片

这样就实现了想要的结果,这里只是给大家提供一个此类问题的解决思路,大家有什么好的办法欢迎交流。我的qq是1066494108,以后会不定期更新一些工作中遇到的问题的结局方案和平时学习和生活中心得体会。希望大家多多指教。。。

 

转载于:https://www.cnblogs.com/mingqi-420/p/11395950.html

你可能感兴趣的:(sql 按指定规则排序,例如 按 1,3,2排序 而不是1,2,3)