トップページに戻る    次のSQLパズルへ    前のSQLパズルへ

5-19 order by句でdecode関数

SQLパズル

ItemTable
itemA
-----
    0
    1
    2
    3
    4

itemAの降順(ただし4が最後)にソートして出力する。

出力結果
itemA
-----
3
2
1
0
4


データ作成スクリプト

create table ItemTable(itemA number(2));

begin
    for i in 0..10 loop
        insert into ItemTable values(i);
    end loop;
    commit;
end;
/


SQL

--■■■decode関数を使用■■■
select itemA from ItemTable
order by decode(itemA,4,1,0),itemA desc;

--■■■case式を使用■■■
select itemA from ItemTable
order by
case itemA when 4 then 1 else 0 end,itemA desc;


解説

order by句でdecode関数による分岐を使用してます。
case式で分岐させてもいいでしょう。