--建立測試環境
Create table tabletest
(姓名 Varchar(10),
種類 Varchar(10),
数量 Int
)
GO
--插入數據
Insert into tabletest
select '1', 'a', 4 union all
select '1', 'b', 5 union all
select '2', 'a', 8 union all
select '3', 'b', 5
--測試
select 姓名,
isnull(max(case when 種類 ='a' then 數量 end),0) as a,
isnull(max(case when 種類='b' then 數量 end),0) as b
from tabletest
group by 姓名
order by 姓名
--建立测试环境
Create table TEST
(姓名 Varchar(10),
种类 Varchar(10),
数量 Int
)
GO
--插入数据
Insert TEST Values('1', 'a', 4)
Insert TEST Values('1', 'b', 5)
Insert TEST Values('2', 'a', 8)
Insert TEST Values('3', 'b', 5)
GO
--测试
Select
姓名,
SUM(Case When 种类='a' Then 数量 Else 0 End) As a,
SUM(Case When 种类='b' Then 数量 Else 0 End) As b
from TEST
Group By 姓名
Order By 姓名
--删除测试环境
DROP table TEST
GO
--结果
/*
姓名 a b
1 4 5
2 8 0
3 0 5
*/