我正在创建一个 Web 应用程序,我需要在其中将列值显示为标题
例子
SELECT Name, Leave
FROM tblUser
INNER JOIN tblLeaveMaster ON tblUser.EmployeeID = tblLeaveMaster.EmployeeID
从该查询中,我得到以下结果:
Name Leave
---------------
Test1 5
Test2 10
test3 2
现在我想将这些值作为
Test1 Test2 Test3
-----------------
5 10 2
我怎样才能做到这一点?
最佳答案
你可以试试用pivot
select pv.* from
(SELECT Name,Leave
FROM tblUser INNER JOIN tblLeaveMaster ON tblUser.EmployeeID=tblLeaveMaster.EmployeeID
)X
pivot
(max(leave) for name in ([Test1],[Test2],[Test3])) as pv
对于动态 PIVOT
declare @sql varchar(max)='',@col_list varchar(8000)=''
set @col_list = (select distinct quotename([Name])+',' from (SELECT Name,Leave
FROM tblUser INNER JOIN tblLeaveMaster ON tblUser.EmployeeID=tblLeaveMaster.EmployeeID
)X
for xml path(''))
set @col_list = left (@col_list,len(@col_list)-1)
set @sql = 'select '+@col_list+' from
(SELECT Name,Leave
FROM tblUser INNER JOIN tblLeaveMaster ON tblUser.EmployeeID=tblLeaveMaster.EmployeeID
)X
pivot (max([Leave]) for [Name] in ('+@col_list+'))pv'
exec(@sql)
关于sql - 在 SQL Server 中将特定列的值显示为标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53166482/