SQL Server-两列下所有列的PIVOT值



所以,我有下面的表结构:

ID    Autor1             Autor2  Autor3 Redactor1 Redactor2 CategorieDeVarsta1  
--------------------------------------------------------------------------------
1    Ursula K. Le Guin      a     c        a          c        14-15 ani
2    Natalie Babbitt        b     d        b          d        12-13 ani

我希望所有列标题名称(Autor1、Autor2等(都在一列下,比如Code,每列的值都在第二列下。这可能吗?我试过PIVOTCROSS APPLY,但都做不到。有人能给我一个提示吗?感谢

是否要取消透视?

Select  ID, Code, Val  
From  (Select id, Autor1, Autor2, Autor3, Redactor1, Redactor2, CategorieDeVarstal From autor) p
UnPivot
(Val FOR Code IN (Autor1, Autor2, Autor3, Redactor1, Redactor2, CategorieDeVarstal)
) AS unpvt

结果:

ID  Code                    Val
1   Autor1                  Ursula K. Le Guin
1   Autor2                  a
1   Autor3                  c
1   Redactor1               a
1   Redactor2               c
1   CategorieDeVarstal      14-15 ani
2   Autor1                  Natalie Babbitt
2   Autor2                  b
2   Autor3                  d
2   Redactor1               b
2   Redactor2               d
2   CategorieDeVarstal      12-13 ani

最新更新