首页 > 解决方案 > 将 Rows 转置为 Column 。SQL Server 中的 2 个 Varchar 列

问题描述

在此处输入图像描述

将行转置为列。我Varchar在 SQL Server 中有 2 列。

我不能使用数据透视,因为我不能在varchar列上运行聚合。我有 2 列Name, Occupation。只需要转置那些。

标签: sqlsql-servertsqlpivottranspose

解决方案


您可以进行条件聚合:

select max(case when occupation = 'Doctor' then name end) as Doctor,
       max(case when occupation = 'Actor' then name end) as Actor
from (select t.*,  row_number() over (partition by occupation order by name) as grp
      from table t
     )
group by grp;

推荐阅读