[英]UNPIVOT - DB2 SQL
我有如下数据
ROW_ID Col0 Col1 Col2 Col3
1 05/22/2020 123 ABC 1
2 05/12/2020 DEF 1 2
3 06/13/2020 PRR N1 4
我正在寻找 output ,其中数据将很少转换,然后将被取消旋转,如下所示
ROW_ID COLUMN_NAME VALUE
1 Col0 05/22/2020
1 Drv_Col0 May-2020
1 Col1 123
1 Col2 ABC
1 Col3 1
1 Sum_Col3 3
2 Col0 05/12/2020
2 Drv_Col0 May-2020
2 Col1 DEF
2 Col2 1
2 Col3 2
2 Sum_Col3 3
3 Col0 06/13/2020
3 Drv_Col0 Jun-2020
3 Col1 PRR
3 Col2 N1
3 Col3 4
3 Sum_Col3 4
您可以使用横向连接。 假设列都具有相同的类型:
select t.row_id, v.*
from t cross join lateral
(values ('Col0', col0),
('Drv_Col0', to_char(col0, 'MON-YYYY'),
('Col1', col1),
('Col2', col2),
('Col3', col3),
('Sum_Col3', ???)
) v(column_name, value);
注意:您可能需要转换列,以便它们都是字符串。
问题没有具体说明sum_col3
是如何定义的,定义也不明显。 但有些表达式可以 go 出现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.