SQL Fiddle
MS SQL Server 2017 架构设置:
create table MyTable(EmployeeName varchar(max),ManagerType varchar(max),Manager varchar(max))
insert into MyTable (EmployeeName,ManagerType,Manager)values
('Mario','Primary', 'Rodrigo'),('Mario','Secondary', 'Thomas')
查询 1:
with CTE AS (select *,
(CASE WHEN ManagerType='Primary' THEN Manager END) AS PrimaryManager,
(CASE WHEN ManagerType = 'Secondary' THEN Manager END) AS SecondaryManager,
ROW_NUMBER() OVER (PARTITION BY ManagerType,Manager
Order By EmployeeName DESC) as rn
from MyTable
group by EmployeeName,ManagerType,Manager )
select c.EmployeeName
,max(c.PrimaryManager) AS PrimaryManager
,max(c.SecondaryManager) AS SecondaryManager
from cte c
where rn=1
group by c.EmployeeName
Results:
| EmployeeName | PrimaryManager | SecondaryManager |
|--------------|----------------|------------------|
| Mario | Rodrigo | Thomas |