1

OracleのテーブルからのSQL結果を、名前のアルファベット順ではなく、月が発生した実際の順序でグループ化する方法を理解しようとしています。

誰かがこれを手伝ってくれますか?よろしくお願いします。

============更新============

クエリの例を次に示します。

SELECT exec_month FROM table_or_view WHERE condition=1 GROUP BY exec_month;

ほら、問題は、私が望むように月ごとにグループ化できないことです。Vincent Malgratが言ったように、「グループ化には暗黙の順序はありません」。

4

1 に答える 1

4

グループ化には暗黙の順序はありません。行を特定の順序で表示する場合は、ORDER BY 句を追加します。

SQL> with data as (
  2     SELECT add_months(trunc(sysdate, 'year'), rownum-1) dt
  3       FROM dual CONNECT BY LEVEL <= 4
  4  )
  5  select to_char(dt, 'month')
  6    from data
  7   group by to_char(dt, 'month'), trunc(dt, 'month')
  8   order by trunc(dt, 'month');

TO_CHAR(D
---------
january
february
march
april
于 2012-10-09T15:36:55.493 に答える