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 に答える