SQL -关于在多个列上将列转置为行透视的问题



这是我的表格

ID1, COL1, COL2, CODE A1, CODE A2, CODE A3,CODE B1, CODE B2, CODE B3, ..... CODE Z1, CODE Z2, CODE Z3  

这是我想要的输出:

ID1, COL1, COL2, CODE A1, CODE A2, CODE A3
ID1, COL1, COL2, CODE B1, CODE B2, CODE B3
.
.
.
ID1, COL1, COL2, CODE Z1, CODE Z2, CODE Z3

基本上,我希望每次出现CODE A1, CODE A2, CODE A3组合输出作为新行,以及唯一标识记录的前3列。

假设三个代码的组合出现了26次,即78列。

我想把这条记录分成26条。

你的任何建议都会很有帮助。

许多数据库支持标准SQL横向连接,这是最好的方法。但更通用的方法是简单的union all:

select id1, col1, col2, code_a1 as code from t union all
select id1, col1, col2, code_a2 as code from t union all
. . .

最新更新