ORACLE 按月排序

ORACLE order by MONTH

如何以月份的全称按月份排序? 我想得到如下结果:

FEBRUARY    0   80
MARCH       0   58
APRIL       0   39

这是我的第一个简单脚本:

select to_char(month,'MONTH')month,mo_incoming,mt_outgoing 
from t_raw_settlement_tara_yearly 
order by month

输出:

APRIL       0   39
FEBRUARY    0   80
MARCH       0   58

第二个脚本几乎是正确的,但我希望这个月是完整的 MONTH

select to_date(to_char(month,'MONTH'),'MONTH')month,mo_incoming,mt_outgoing 
from t_raw_settlement_tara_yearly 
order by month

输出:

2/1/2015    0   80
3/1/2015    0   58
4/1/2015    0   39

您将 to_char(month,'MONTH') 别名为 month。现在,当您在 ORDER BY 中使用 month 时,它会引用月份字符串。使用不同的别名或限定列:

select to_char(month,'MONTH')month,mo_incoming,mt_outgoing 
from t_raw_settlement_tara_yearly t
order by t.month