日期:2014-05-17 浏览次数:20489 次
if OBJECT_ID('TableA') is not null
drop table TableA
go
create table TableA
(
单号 nvarchar(10),
材料1名称 nvarchar(20),
材料1重量 int,
材料1价格 int,
材料2名称 nvarchar(20),
材料2重量 int,
材料2价格 int
)
go
insert into TableA values
('P001','A',10,10,'B',20,10),
('P002','B',10,5,'A',20,20),
('P003','C',5,10,'A',5,5),
('P004','B',10,5,NULL,NULL,NULL)
--SQL
select
单号,
case when 材料1名称='A' then 材料1重量
when 材料2名称='A' then 材料2重量
else null end A重量,
case when 材料1名称='A' then 材料1价格
when 材料2名称='A' then 材料2价格
else null end A价格,
case when 材料1名称='B' then 材料1重量
when 材料2名称='B' then 材料2重量
else null end B重量,
case when 材料1名称='B' then 材料1价格
when 材料2名称='B' then 材料2价格
else null end B价格,
case when 材料1名称='C' then 材料1重量
when 材料2名称='C' then 材料2重量
else null end C重量,
case when 材料1名称='C' then 材料1价格
when 材料2名称='C' then 材料2价格
else null end C价格
from TableA
--结果集
/*
单号 A重量 A价格 B重量 B价格 C重量 C价格
P001 10 10 20 10 NULL NULL
P002 20 20 10 5 NULL NULL
P003 5 5 NULL NULL 5 10
P004 NULL NULL 10 5 NULL NULL
*/