阅读量:0
Oracle UNPIVOT 函数可以将多个列的数据转换为行
- 首先,假设您有一个名为 SALES_DATA 的表,其中包含以下数据:
PRODUCT | JAN_SALES | FEB_SALES | MAR_SALES ---------|------------|-----------|----------- A | 100 | 200 | 300 B | 400 | 500 | 600
- 使用 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 函数,您可以轻松地将多列数据转换为行格式,从而实现数据透视。