sql语句中的排序有desc(降序)、asc(升序),这两个都是按顺序排列的,最近有一个需求是不按顺序排序了 ,抽出个别的排在前面,并且这种需求是应对的问题中的数据是比较少的,而且没有规律可循,用程序处理的话虽然能实现,但是处理起来会复杂很多,下面我们就通过对order by 后面的排序语句进行处理达到我们想要的目的
在Company表中存储有id,Name(公司名称)等字段,其中id为自增 主键 首先我们按顺序查出前三条记录(默认升序,其中order by id ASC 可省略)
1 |
<pre class="inline:true class:language-sql decode:1 " >SELECT TOP 3 id,Name FROM dbo.Company ORDER BY Id ASC |
下面我们将第二条数据排在第一位
1 2 3 |
<pre class="inline:true class:language-sql decode: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 |
这样就实现了想要的结果
浏览量: 8