非常棘手的order by 问题
我有一个字段 size,我想 select * from [tablename] order by size,但是我的size是用户输入的。我想根据size排序。比如size=10 我想size=10的记录在最上方,size=9和size=11的在下面。有办法吗。
------解决方案--------------------select * from [tablename] order by case size when 10 then -9999 end
------解决方案--------------------select * from [tablename] order by CASE WHEN size=10 THEN 0 ELSE 1 END
------解决方案--------------------declare @t table(pk int identity(1,1),size int)
insert @t select 9
insert @t select 10
insert @t select 11
select * from @t order by case size when 10 then (select min(size)-1 from @t) else size end
----
pk size
----------- -----------
2 10
1 9
3 11
(所影响的行数为 3 行)