oracle中日期列转行
时间: 2025-02-24 11:27:48 浏览: 13
将日期列数据转换为行格式
在 Oracle 数据库中,UNPIVOT
操作符用于将列中的数据转换为行。这通常适用于需要重新结构化数据的情况,例如从宽表到长表的转换。
假设有一个名为 sales_data
的表格,其中包含销售记录以及多个表示不同月份销售额的日期字段:
id | product_name | Jan_Sales | Feb_Sales | Mar_Sales |
---|---|---|---|---|
1 | Product A | 200 | 300 | 400 |
要将这些月度销售金额按时间顺序排列在一个单独的列中显示,则可以使用 UNPIVOT
来完成此操作[^2]。
下面是一个具体的 SQL 查询例子来展示如何执行这种变换:
SELECT
id,
product_name,
sales_date,
sales_amount
FROM
sales_data
UNPIVOT (
sales_amount FOR sales_date IN (Jan_Sales AS 'January', Feb_Sales AS 'February', Mar_Sales AS 'March')
);
这段代码会把原始表里的每个月份对应的销售额都放到同一列里,并且给每条记录加上相应的月份标签作为新的字段值。这样就可以更方便地分析随时间变化的趋势了[^4]。
相关推荐














