温馨提示×

如何利用 Oracle unpivot 函数实现数据透视

小樊
84
2024-09-16 19:37:36
栏目: 云计算

Oracle UNPIVOT 函数可以将多个列的数据转换为行

  1. 首先,假设您有一个名为 SALES_DATA 的表,其中包含以下数据:
PRODUCT | JAN_SALES | FEB_SALES | MAR_SALES
---------|------------|-----------|-----------
A        | 100        | 200       | 300
B        | 400        | 500       | 600
  1. 使用 UNPIVOT 函数将数据从列转换为行:
SELECT PRODUCT, MONTH, SALES
FROM SALES_DATA
UNPIVOT (SALES FOR MONTH IN (JAN_SALES AS 'Jan', FEB_SALES AS 'Feb', MAR_SALES AS 'Mar'));

这将返回以下结果:

PRODUCT | MONTH | SALES
---------|-------|-------
A        | Jan   | 100
A        | Feb   | 200
A        | Mar   | 300
B        | Jan   | 400
B        | Feb   | 500
B        | Mar   | 600

在此示例中,我们使用 UNPIVOT 子句将 JAN_SALES、FEB_SALES 和 MAR_SALES 列转换为行。UNPIVOT 子句中的 FOR 子句定义了新的 MONTH 列,该列包含原始列名(‘Jan’、‘Feb’ 和 ‘Mar’)。SALES 列包含这些月份的销售额。

通过使用 Oracle UNPIVOT 函数,您可以轻松地将多列数据转换为行格式,从而实现数据透视。

0