问题是:我有一个表,我想要具有特殊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
按键值顺序排序。
答案 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