1

在 SQL Server 2008 中对数字进行排序时,我如何需要先显示正数然后显示负数。

例如:假设我有数字 -4,-3,null,2,3 那么预期结果:2,3,-4,-3,null

4

1 回答 1

4

根据您的小示例,您似乎希望正数按升序排列,然后负数按升序排列。

这使问题变得更有趣。试试这个order by子句:

order by (case when col > 0 then 2 when col < 0 then 1 else 0 end) desc,
         col asc

这是一个例子:

with t as (select 2 as col union all select 3 union all select -4 union all select -3 union all select null)
select *
from t
order by (case when col > 0 then 2 when col < 0 then 1 else 0 end) desc,
         col asc;
于 2013-07-24T14:51:09.150 回答