Oracle 中的循环记录

Loop Record in Oracle

我有一个名为 TaxAmount 的 Table。它有 3 列(ID、年份、金额)。参考下图。

我想将每一行分成 12 个月。我在下面附上了示例图片。

我是 Oracle 方面的新手。请帮我写一个Oracle查询来显示上面的结果。

我尝试了 ROWNUM。但是运气不好。

这是一种选择:

SQL> select id, year, column_value as month, amount
  2  from taxamount cross join
  3    table(cast(multiset(select level from dual
  4                        connect by level <= 12
  5                       ) as sys.odcinumberlist))
  6  order by id, year, month;

        ID       YEAR      MONTH     AMOUNT
---------- ---------- ---------- ----------
         1       2022          1        100
         1       2022          2        100
         1       2022          3        100
         1       2022          4        100
         1       2022          5        100
         1       2022          6        100
         1       2022          7        100
         1       2022          8        100
         1       2022          9        100
         1       2022         10        100
         1       2022         11        100
         1       2022         12        100
         2       2022          1        200
         2       2022          2        200
         2       2022          3        200
         2       2022          4        200
         2       2022          5        200
         2       2022          6        200
         2       2022          7        200
         2       2022          8        200
         2       2022          9        200
         2       2022         10        200
         2       2022         11        200
         2       2022         12        200
         3       2022          1        150
         3       2022          2        150
         3       2022          3        150
         3       2022          4        150
         3       2022          5        150
         3       2022          6        150
         3       2022          7        150
         3       2022          8        150
         3       2022          9        150
         3       2022         10        150
         3       2022         11        150
         3       2022         12        150

36 rows selected.

SQL>