2016-04-18 28 views
0

フィールドの階層値に基づいてテーブルから値をソートするにはどうすればいいですか?フィールドの階層値に基づいてテーブルから値をソート

EX:

A  B 
-------- 
1  A 
2  F 
3  A 
4  P 
5  O 
6  F 

Iの値は、P値と最終的にO値、その後、Bフィールドで値をソートし、第一のF値が表示されたいです。最後に

、結果はこのようにする必要があります

2 F 
6 F 
1 A 
3 A 
4 P 
5 O 

答えて

3

order bycase表現を使用してください。

select * 
from tablename 
order by case when B = 'F' then 1 
       when B = 'A' then 2 
       when B = 'P' then 3 
       when B = 'O' then 4 
      end, A 
0

よりコンパクト:PAに比べPFを持っている(現在または将来的に)必要であれば、これも列B

で1つだけの文字値ではなく、あなたをできるようになります

order by translate (B, 'FAPO', '1234') 

関連する問題