在 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录