问题是:我有一个表,我想要用特殊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
存在按键值顺序排列的差。
如果您想首先查看具有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
可能很慢UNION是的一种解决方案
SELECT *,1 as rank FROM tbl where id=3
UNION
SELECT *,2 as rank FROM tbl where id!=3 order by rank,id
像这样尝试
SELECT *
From Table1
Order By CASE When Id = 3 Then 0 Else 1 End Asc,ID Desc