1

我试图弄清楚如何按照月份发生的实际顺序而不是它们名称的字母顺序对 Oracle 中的表中的 SQL 结果进行分组。

谁能帮我这个?先谢谢了。

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

这是一个示例查询:

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

你看,问题是我不能像我想要的那样按月分组。正如文森特马尔格拉特所说,“分组没有隐含的顺序”。

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 回答