在SQL Server中,如何在列中显示表行值?
我正在使用SQL Server 2012,我的表如下所示:在SQL Server中,如何在列中显示表行值?,sql,sql-server,Sql,Sql Server,我正在使用SQL Server 2012,我的表如下所示: Customer Status StatusType ---------------------------------------- 3 Ok personalInfo 3 Pending FinancialInfo 3 NeedUpdate CompanyInfo 要在此处获得结果,我需要一个SQL查询:
Customer Status StatusType
----------------------------------------
3 Ok personalInfo
3 Pending FinancialInfo
3 NeedUpdate CompanyInfo
要在此处获得结果,我需要一个SQL查询:
Customer PersonalInfo FinancialInfo CompanyInfo
---------------------------------------------------------
3 Ok Pending NeedUpdate
输出
Customer PersonalInfo FinancialInfo CompanyInfo
3 Ok Pending NeedUpdate
或
您只需使用Pivot或query将行转换为列。就是这样。有一个问题,Pivot in operator,I StatusType不是固定的,它们是动态的
Customer PersonalInfo FinancialInfo CompanyInfo
3 Ok Pending NeedUpdate
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.[StatusType])
FROM #Table1 c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT customer, ' + @cols + ' from
#Table1
PIVOT ( max([status])
for [StatusType] in ([PersonalInfo], [FinancialInfo], [CompanyInfo])) AS pvt'
exec(@query)