这是否可行,将第一张桌子改为第二张桌子(见下文)? 我想将标题转换为其字段的行值。
我使用的是Microsoft SQL Server 2012。
样本表
感谢您的建议。
第一个表是数据库中存在的表。
第二个是我想在查询结果中得到的内容。只有一个表源。
我想使用UNPIVOT函数来做到这一点。有什么想法吗?
答案 0 :(得分:0)
请尝试UNION ALL
,如下所示。我只考虑了你所展示的那些专栏。
SELECT Header1 AS NewHeader1 ,'Header1' AS NewHeader2 FROM TableName
UNION ALL
SELECT Header2 AS NewHeader1 ,'Header2' AS NewHeader2 FROM TableName
答案 1 :(得分:0)
在这种情况下,您只需使用Union All
SELECT
Newheader1 = Header1,
Newheader2 = 'Header1'
FROM YourTable
UNION ALL
SELECT
Newheader1 = Header2,
Newheader2 = 'Header2'
FROM YourTable
答案 2 :(得分:0)
我会使用交叉申请而不是UNION ALL
select a.* from table t
cross apply (
values (Header1, 'Header1'),
(Header2, 'Header2')
)a(NewHeader1, NewHeader2)
order by 1