如何将SQL查询结果行作为具有不同标头名称的列获取


销售类型
销售类型名称
现金 500
签证 1200

您可以使用PIVOT:

SELECT [Cash], [Visa]
FROM (
SELECT SalesTypeName, SalesType
FROM t
)  src
PIVOT
(
SUM (SalesType)
FOR SalesTypeName IN ([Cash], [Visa])
) pvt  

如果有更多SalesTypeName的情况,可以通过在PIVOTFOR子句中添加值来轻松扩展查询。对于动态数量的值,必须使用动态PIVOT

在这里演示

我建议条件聚合:

select sum(case when sales_type_name = 'Cash' then Sales_Type end) as cash,
sum(case when sales_type_name = 'Visa' then Sales_Type end) as visa    
from t

最新更新