Sql server 将列显示到SQL行中
因此,我遇到一个表,它的设计如下:Sql server 将列显示到SQL行中,sql-server,tsql,Sql Server,Tsql,因此,我遇到一个表,它的设计如下: t_Schedule t_Prof ---------- ---------- Date ID ProfID Name ProfID1 我想要实现的是: Date | Name ------------------------ June 1, 2016 | ProfName1 June 1, 2016 | ProfName2 当我使用Join时,
t_Schedule t_Prof
---------- ----------
Date ID
ProfID Name
ProfID1
我想要实现的是:
Date | Name
------------------------
June 1, 2016 | ProfName1
June 1, 2016 | ProfName2
当我使用Join时,我得到以下结果:
Date | ProfID | ProfID1
------------------------------------
June 1, 2016 | ProfName1| ProfName2
您可以使用UNPIVOT函数来实现这一点。下面将更详细地讨论答案: stackoverflow.com/questions/18026236/sql server列到行尝试以下查询:
SELECT s.[Date], x.Name
FROM dbo.t_Schedule s
INNER/*LEFT OUTER when column ProfID allows NULLs*/ JOIN dbo.t_Prof p ON s.ProfID = p.ID
LEFT OUTER JOIN dbo.t_Prof p1 ON s.ProfID1 = p1.ID
CROSS APPLY (
SELECT p.Name WHERE p.Name IS NOT NULL
UNION ALL
SELECT p1.Name WHERE p1.Name IS NOT NULL
) x(Name)
谢谢你。我想知道EXEC是否也能解决我的问题?