gpt4 book ai didi

sql - 如何在oracle中获取最近十年的列表

转载 作者:行者123 更新时间:2023-12-04 14:29:19 24 4
gpt4 key购买 nike

我如何获得 oracle 过去 10 年的列表?

这是我的尝试

   SELECT TO_CHAR(SYSDATE,'yyyy') FROM DUAL
UNION ALL
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-12),'yyyy') FROM DUAL
UNION ALL
SELECT to_char(add_months(sysdate,-24),'yyyy') FROM DUAL
UNION ALL
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-36),'yyyy') FROM DUAL
UNION ALL
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-48),'yyyy') FROM DUAL
UNION ALL
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-60),'yyyy') FROM DUAL
UNION ALL
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-72),'yyyy') FROM DUAL
UNION ALL
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-84),'yyyy') FROM DUAL

最佳答案

让我从一个简单的技巧开始

SELECT LEVEL FROM
DUAL
CONNECT BY LEVEL <= 10;

这将从 1,2....10 生成行。

它有效,因为, CONNECT BY将尝试链接行。每个都有一个级别。现在我们提到 LEVEL <= 10因此,生成了 10 行。!!!

您现在的问题是,从 SYSDATE 中减去 12 个月10倍..

所以,答案应该是
SELECT TO_CHAR(SYSDATE,'YYYY')-LEVEL+1 FROM
DUAL
CONNECT BY LEVEL <= 10;

现在,您可以发挥您的创造力,根据需要自定义此 sql。

祝你好运!

关于sql - 如何在oracle中获取最近十年的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28459690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com