我有一张桌子
我需要结果
我只有两个CaseNo,1和2。 如何在单个查询中执行此操作,而不是常见的表表达式或单独的查询?
答案 0 :(得分:3)
您可以使用条件聚合:
select 1 as CaseNo1, sum(case when CaseNo = 1 then Amount end) as Amount1,
2 as CaseNo2, sum(case when CaseNo = 2 then Amount end) as Amount2
from table;
但是,我不建议在SQL中进行此转换。如果您需要在应用程序中使用此格式的数据,则应该在应用程序层中执行此操作。
答案 1 :(得分:0)
SELECT 'Amount' ,
[1], [2]
FROM
(SELECT CaseNo, Amount
FROM table) AS SourceTable
PIVOT
(
sum(Amount)
FOR CaseNo IN ( [1], [2])
) AS PivotTable;