首页 > 解决方案 > 如何在 MS SQL Server 表上进行选择以在一行中显示其某些列数据并使用 sum 函数

问题描述

我有一个 MS SQL Server 表,如下所示:

在此处输入图像描述

我需要使用 TSQL 将其更改为以下格式:

在此处输入图像描述

我怎样才能做到这一点?任何帮助将不胜感激!

标签: sqlsql-servertsqlpivot

解决方案


您可以进行条件聚合:

select 
    title, 
    max(case when [type] = 'type1' then [number] end) [type1],
    max(case when [type] = 'type2' then [number] end) [type2]
from mytable
group by title

如果给定元组可能有多个记录(title, type),则可能需要使用另一个聚合函数,而不是max()、 likesum()avg()


推荐阅读