【发布时间】:2022-11-10 22:07:05
【问题描述】:
有没有办法创建一个数据透视表,根据一些 if 条件(从平面表到胖表)将单列转换为多列?
CREATE TABLE table_name (A,B,C,D) AS
SELECT 'A', '1', '4', DATE '2000-01-04' FROM DUAL UNION ALL
SELECT 'A', '1', '6', DATE '2000-01-04' FROM DUAL UNION ALL
SELECT 'A', '2', '1', DATE '2000-01-04' FROM DUAL UNION ALL
SELECT 'B', '1', '20', DATE '2000-01-04' FROM DUAL UNION ALL
SELECT 'B', '2', '2', DATE '2000-01-04' FROM DUAL UNION ALL
SELECT 'B', '-3', '999', DATE '2000-01-04' FROM DUAL UNION ALL
SELECT 'A', '1', '30', DATE '2000-01-05' FROM DUAL UNION ALL
SELECT 'B', '2', '3', DATE '2001-01-05' FROM DUAL;
每列 A 和 D 的预期结果
A, D, C where B == 1, C where B == 2
A, 2000-01-04, 10, 1
B, 2000-01-04, 20, 2
A, 2000-01-05, 30, 0
B, 2000-01-05, 0, 3
或每列 D
D, C where B == 1 - C where B == 2
2000-01-04, 27
2000-01-05, 27
【问题讨论】:
标签: sql oracle if-statement pivot