Oracle多列数据转成多行数据(列转行)
warning:
这篇文章距离上次修改已过243天,其中的内容可能已经有所变动。
在Oracle中,可以使用UNPIVOT
操作将多列数据转换成多行数据。以下是一个简单的例子:
假设有一个名为sales_data
的表,其结构如下:
year | product_a | product_b | product_c
-----------------------------------------
2020 | 100 | 200 | 300
2021 | 150 | 220 | 310
要将product_a
、product_b
和product_c
的数据转换成多行格式,可以使用以下SQL查询:
执行上述查询后,结果将是:
year | product | sales
-------------------------
2020 | Product A | 100
2020 | Product B | 200
2020 | Product C | 300
2021 | Product A | 150
2021 | Product B | 220
2021 | Product C | 310
这里使用了UNPIVOT
操作符,它将列转换成行,FOR product IN (...)
定义了需要转换的列和它们对应的行值。
评论已关闭