当前位置:   article > 正文

Oracle数据库中如何获取当前年下的01- 12 个月 并用1/12 -12/12_oracle 生成一年12个月

oracle 生成一年12个月

1:

  1. 第一种:
  2. SELECT TO_CHAR(ADD_MONTHS(TO_DATE(CONCAT('2022','0101'), 'YYYYMMDD'), LEVEL - 1), 'mm') || '月' AS month
  3. FROM DUAL
  4. CONNECT BY LEVEL <= 12
  5. 第二种:
  6. SELECT TO_CHAR(ADD_MONTHS(DATE '20220101', LEVEL - 1), 'mm') || '月' AS month
  7. FROM DUAL
  8. CONNECT BY LEVEL <= 12
  9. 第三种: 不显示 0
  10. SELECT TO_CHAR(ADD_MONTHS(TO_DATE(CONCAT('2023','0101'), 'YYYYMMDD'), LEVEL - 1), 'fmMonth') AS month
  11. FROM DUAL
  12. CONNECT BY LEVEL <= 12

执行结果:

 2:个人使用

  1. SELECT A.month AS 每年月份 ,nvl(B.目标值,0) AS 目标值, NVL(B.完成率,0) AS 完成率 from(
  2. SELECT TO_CHAR(ADD_MONTHS(TO_DATE(CONCAT('2022','0101'), 'YYYYMMDD'), LEVEL - 1), 'mm') || '月' AS month
  3. FROM DUAL
  4. CONNECT BY LEVEL <= 12) A
  5. left join
  6. (SELECT
  7. NVL((round(SUBSTR(STAT_TIME,5,6)/12* 100,2)),0) AS 目标值,
  8. NVL(REFORM_TASK_COM_RATE,0) AS 完成率,
  9. SUBSTR(STAT_TIME,5,6)|| '月' AS 每年月份
  10. FROM BRAIN.DM_ZHGL_REFORM_TASK_INFO
  11. WHERE SUBSTR(STAT_TIME,1,4) = 2022)
  12. B
  13. ON A.month = B.每年月份

结果:

3:当前年下的 每个月,以及每个月份,除以12 

  1. SELECT
  2. TO_CHAR(ADD_MONTHS(TO_DATE(CONCAT(2022 ,'0101'), 'YYYYMMDD'), LEVEL - 1), 'mm') || '月' AS month,
  3. ROUND((LEVEL - 1) / 11.0 * 100, 2) AS 目标值
  4. FROM
  5. DUAL
  6. CONNECT BY
  7. LEVEL <= 12;

结果:

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号