Oracle UNPIVOT: 将表格列数据转换为行数据
在 Oracle 中,可以使用 UNPIVOT 操作将表格中的某列数据转换为行数据。
假设有以下表格:
CREATE TABLE mytable (
id NUMBER,
col1 NUMBER,
col2 NUMBER,
col3 NUMBER
);
表格数据如下:
INSERT INTO mytable (id, col1, col2, col3)
VALUES (1, 10, 20, 30);
INSERT INTO mytable (id, col1, col2, col3)
VALUES (2, 40, 50, 60);
要将 col1、col2 和 col3 的数据转换为行数据,可以使用 UNPIVOT 操作:
SELECT id, col_name, col_value
FROM mytable
UNPIVOT (
col_value FOR col_name IN (col1, col2, col3)
);
输出结果如下:
ID COL_NAME COL_VALUE
-- -------- ---------
1 'COL1' 10
1 'COL2' 20
1 'COL3' 30
2 'COL1' 40
2 'COL2' 50
2 'COL3' 60
这样就将表格中的某列数据转换为行数据。
原文地址: https://www.cveoy.top/t/topic/mx6S 著作权归作者所有。请勿转载和采集!