Oracle ORDER BY无法正常工作

时间:2014-03-21 05:04:42

标签: sql oracle oracle11g

我正在尝试使用Oracle的ORDER BY语句以及以下查询...

SELECT   TO_CHAR(transaction_date, 'MON-YYYY') AS MONTHS
FROM     transaction_upload
WHERE    EXTRACT(YEAR FROM transaction_date) = 2009
GROUP BY TO_CHAR(transaction_date, 'MON-YYYY')
ORDER BY MONTHS;

我得到的结果是:

MONTHS
-----------------
APR-2009
AUG-2009
DEC-2009
FEB-2009
JAN-2009
JUL-2009
JUN-2009
MAR-2009
MAY-2009
NOV-2009
OCT-2009
SEP-2009

我做错了什么?

2 个答案:

答案 0 :(得分:2)

尝试按时间顺序排序。

SELECT   TO_CHAR(transaction_date, 'MON-YYYY') AS MONTHS
FROM     transaction_upload
WHERE    EXTRACT(YEAR FROM transaction_date) = 2009
GROUP BY TO_CHAR(transaction_date, 'MON-YYYY')
ORDER BY to_date (months,'MON-YYYY');

答案 1 :(得分:0)

尝试此查询,这将订购09年1月9日,

SELECT   TO_CHAR(transaction_date, 'MON-YYYY') AS MONTHS ,
to_Char(transaction_date,'YYYYMM')  NumMon
FROM     transaction_upload
WHERE    EXTRACT(YEAR FROM transaction_date) = 2009
GROUP BY TO_CHAR(transaction_date, 'MON-YYYY'),to_Char(transaction_date,'YYYYMM') 
ORDER BY NumMon;