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

Posted mingqi-420

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 

技术图片

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

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,以后会不定期更新一些工作中遇到的问题的结局方案和平时学习和生活中心得体会。希望大家多多指教。。。

 

以上是关于sql 按指定规则排序,例如 按 1,3,2排序 而不是1,2,3的主要内容,如果未能解决你的问题,请参考以下文章

按指定规则对List进行排序compare和遍历方法比较

sql 按字段指定值排序

oracle里面怎么多个字段分组排序

js sort 数组中包含数组怎么排序

SQL如何按两个字段排序,一个按倒序一个按升序?

SQL 按计数排序