–使用UNPIVOT,将宽格式的数据转换为长格式的数据,即将多个相关的列展开成一行中的单个列加上一个标识列
CREATE TABLE inventory (
Product VARCHAR2(50),
WarehouseA NUMBER,
WarehouseB NUMBER,
WarehouseC NUMBER
);
INSERT INTO inventory (Product, WarehouseA, WarehouseB, WarehouseC) VALUES (‘Apple’, 100, 150, 200);
INSERT INTO inventory (Product, WarehouseA, WarehouseB, WarehouseC) VALUES (‘Banana’, 200, 250, 300);
select * from inventory;
SELECT Product, Warehouse, Quantity
FROM inventory
UNPIVOT (
Quantity FOR Warehouse IN (
WarehouseA AS ‘WarehouseA’,
WarehouseB AS ‘WarehouseB’,
WarehouseC AS ‘WarehouseC’
)
) AS unpivoted_inventory;
CREATE TABLE emp (
emp_id INT,
emp_name VARCHAR(50),
emp_salary_grade VARCHAR,
emp_department VARCHAR(50)
);
INSERT INTO emp VALUES (1, ‘Alice’, 1, ‘Human Resources’);
INSERT INTO emp VALUES (2, ‘Bob’, 2, ‘Sales’);
INSERT INTO emp VALUES (3, ‘Charlie’, 3, ‘Marketing’);
commit;
select * from emp;
SELECT emp_id, emp_attribute, emp_value
FROM emp
UNPIVOT (
emp_value FOR emp_attribute IN (emp_name, emp_salary_grade, emp_department)
);
文章
阅读量
获赞