对正数和负数进行排序,首先显示正数

时间:2013-07-24 14:42:40

标签: sql sql-server sql-server-2008

在SQL Server 2008中对数字进行排序时,如何首先显示正数而不是负数。

例: 假设我有数字-4,-3,null,2,3 然后预期结果:2,3,-4,-3,null

1 个答案:

答案 0 :(得分: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;