按键值顺序排序

时间:2014-03-11 05:44:22

标签: sql-server

问题是:我有一个表,我想要具有特殊ID的排序项。

例如:

Request(Id, Code, Phone, CreatedDate)

1  100  98351265  2014/2/2
2  101  98351269  2014/3/2 
3  102  98351985  2014/5/2 
4  103  98351654  2014/9/2

Id=3

排序

结果:

3  102  98351985  2014/5/2 
1  100  98351265  2014/2/2
2  101  98351269  2014/3/2 
4  103  98351654  2014/9/2

按键值顺序排序。

3 个答案:

答案 0 :(得分:2)

如果您想查看Id = 3 第一个的记录,而所有其他记录按Id排序,您可以这样说:

  select *
    from MyTable
order by case
           when Id = 3 then
             0
           else
             1
         end,    -- <- First, extract records with Id = 3
         Id desc -- <- Next, sort by Id

答案 1 :(得分:1)

可能很慢。 UNION 是一种解决方案

 SELECT *,1 as rank FROM tbl where id=3
           UNION 
 SELECT *,2 as rank FROM tbl where id!=3 order by rank,id

答案 2 :(得分:1)

试试这个

SELECT *
From Table1
Order By CASE When Id = 3 Then 0 Else 1 End Asc,ID Desc