sql - 使用oracle sql列出所有月份

标签 sql oracle

伙计们,有没有更好的方法来列出除此之外的所有月份:

select to_char(add_months(to_date('01/01/1000', 'DD/MM/RRRR'), ind.l-1), 'MONTH') as month_descr,
       ind.l as month_ind
  from dual descr,
       (select l
          from (select level l 
                  from dual 
                connect by level <= 12
               )
       ) ind
order by 2;

回答:
SELECT to_char(add_months(SYSDATE, (LEVEL-1 )),'MONTH') as months 
  FROM dual 
CONNECT BY LEVEL <= 1

还有一个问题见下文

另外我想列出前两年,包括今年。我写了这个 sql 查询。让我知道是否有更好的东西。
select extract(year from sysdate) - (level-1) as years 
  from dual 
connect by level <=3 
order by years

最佳答案

不是更好,而是更干净一点:

SQL>  select to_char(date '2000-12-01' + numtoyminterval(level,'month'),'MONTH') as month
  2     from dual
  3  connect by level <= 12
  4  /

MONTH
---------
JANUARY
FEBRUARY
MARCH
APRIL
MAY
JUNE
JULY
AUGUST
SEPTEMBER
OCTOBER
NOVEMBER
DECEMBER

12 rows selected.

问候,
抢。

关于sql - 使用oracle sql列出所有月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4582861/

相关文章:

sql - 连接表时的语法错误

java - 将 java.long 映射到 oracle.Number(14)

oracle - 根据用户过滤交互式报告中的数据

linux - oracle 瘦 jdbc 连接在不活动后接收 "connection reset"

mysql - 使用 SQL Developer 从 MySQL 表中 SELECT INTO Oracle SQL 表

java - hibernate : QueryImpl list method Performance

2 组 SQL 查询

java - 在表中添加带有链接的新条目

mysql - 必填项 mysql

java - 无限循环的线程在捕获一些异常后停止