繁体   English   中英

UNPIVOT - DB2 SQL

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM