我想知道如何根据字段的层次结构值对表中的值进行排序。
EX:
A B
--------
1 A
2 F
3 A
4 P
5 O
6 F
我想按B字段对值进行排序,然后首先显示F值,然后是A值,然后是P值,最后是O值。
最后,结果必须如下:
2 F
6 F
1 A
3 A
4 P
5 O
答案 0 :(得分:4)
在case
中使用order by
表达式。
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
答案 1 :(得分:0)
更紧凑:
order by translate (B, 'FAPO', '1234')
如果需要(现在或将来),这也允许您将PF与PA进行比较,而不仅仅是B列中的单个字母值。