根据您的 SQL Server 版本,您可以使用 CROSS APPLY 取消透视数据。
CROSS APPLY 和 VALUES 将在 SQL Server 2008+ 中工作:
select name,
ProjectId
from yourtable
cross apply
(
values
('Project_One_ID', Project_One_ID),
('Project_Two_ID', Project_Two_ID),
('Project_Three_ID', Project_Three_ID)
) c (col, ProjectId);
如果您使用的是 SQL Server 2005,则可以将 CROSS APPLY 与 UNION ALL 一起使用:
select name,
ProjectId
from yourtable
cross apply
(
select 'Project_One_ID', Project_One_ID union all
select 'Project_Two_ID', Project_Two_ID union all
select 'Project_Three_ID', Project_Three_ID
) c (col, ProjectId)