【发布时间】:2021-03-24 15:01:48
【问题描述】:
我正在尝试在 SQL Server 2016 中转换此数据集
--数据集
CarModel Tire MakeDate Owner
Subaru MRF 20200101 John D
Subaru Goodyear 20200101 John D
Subaru MRF 20200101 John D
Subaru MRF 20200101 John D
输出结果应该是:
CarModel Tire1 Tire2 Tire3 Tire4 MakeDate Owner
Subaru MRF GoodYear MRF MRF 20200101 John D
我试过了,但没有成功。如果我犯了任何错误,请告诉我吗?
create table #temp_Dataset
(Carmodel varchar(10), Tire varchar(10), MakeDate int, [Owner] Varchar(10))
insert into #temp_Dataset
(Carmodel, Tire, MakeDate, [Owner])
values
('Subaru', 'MRF', 20200101 , 'John D'),
('Subaru', 'Goodyear', 20200101 , 'John D'),
('Subaru', 'MRF', 20200101 , 'John D'),
('Subaru', 'MRF', 20200101 , 'John D')
Select * from(
SELECT CarModel,
Tire,
MakeDate,
[Owner]
FROM #temp_Dataset)a
pivot (max(carmodel) for Tire in (Tire1, Tire2, Tire3, Tire4))piv
drop table #temp_Dataset
【问题讨论】:
标签: sql sql-server pivot sql-server-2016