トップページに戻る
次のSQLパズルへ
前のSQLパズルへ
10-255 nullを0としてソート
SQLパズル
numTable
Val
----
-1
null
0
1
2
3
nullを、0として昇順で出力する。
(nullは、0同士の中では、最小として扱います)
出力結果
Val
----
-1
null
0
1
2
3
データ作成スクリプト
create table numTable(Val) as
select -1 from dual union
select null from dual union
select 0 from dual union
select 1 from dual union
select 2 from dual union
select 3 from dual;
SQL
--■■■sign関数を使う方法■■■
select Val
from numTable
order by nvl(sign(Val),-0.5),Val;
--■■■sign関数を使わない方法■■■
select Val
from numTable
order by nvl(Val,0),Val desc;
解説
sign関数を使う方法が分かりやすいと思いますねぇ