伙计们,有没有更好的方法来列出除此之外的所有月份:
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/