oracle 列轉行
Oracle中列转行的方法是使用UNPIVOT操作符。
假设有以下表格:
CREATE TABLE mytable (
id NUMBER,
col1 NUMBER,
col2 NUMBER,
col3 NUMBER
);
INSERT INTO mytable VALUES (1, 10, 20, 30);
INSERT INTO mytable VALUES (2, 40, 50, 60);
要将列转行,可以使用以下查询:
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
在UNPIVOT操作符中,需要指定要转换的列名,以及转换后的列名和别名。在此例中,将col1、col2和col3列转换为col_name和col_value列,其中col_name是列名,col_value是列中的值。最后,SELECT语句选择id、col_name和col_value列
原文地址: https://www.cveoy.top/t/topic/eQnP 著作权归作者所有。请勿转载和采集!