所以,我有下面的表结构:
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
,每列的值都在第二列下。这可能吗?我试过PIVOT
和CROSS 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