Sql server 如何选择列值作为行?
我在SQL Server中有一个名为ItemData的表,如下所示Sql server 如何选择列值作为行?,sql-server,Sql Server,我在SQL Server中有一个名为ItemData的表,如下所示 Create Table ItemDate( ItemName VARCHAR(50), Hyundai int,[I10/ I20] int,Maruti int); insert into ItemData values('Coolant Change',150,150,150) insert into ItemData values('Gear Oil Change',150,150,150) insert into It
Create Table ItemDate( ItemName VARCHAR(50), Hyundai int,[I10/ I20] int,Maruti int);
insert into ItemData values('Coolant Change',150,150,150)
insert into ItemData values('Gear Oil Change',150,150,150)
insert into ItemData values('Brake Oil Change',350,200,200)
现在我想查询要插入到此表中的表
Create Table Result( ItemName VARCHAR(50), ModelName VARCHAR(50), Rate int);
其中型号名称为现代、I10/I20和Maruti
请帮助我一种方法是使用
unpivot
来实现这一点。
请尝试以下操作:
insert into Result
select ItemName, ModelName, Rate
from
(
select ItemName, Hyundai, [I10/ I20], Maruti
from ItemData
)t
unpivot
(
Rate for ModelName in ([Hyundai], [I10/ I20], [Maruti])
)upvt
请查找DBFIDLE您的表ItemDate不正确,插入不正确。。。你测试过你的代码吗?有很多东西需要理解。1.表名为“ItemDate”,而insert为“ItemData”2。与150入门级相比,现代[I10/I20]是什么。它完全不匹配。建议是,首先写下什么是表数据,什么是输出数据。其次,使用匹配数据编写表结构。所以我们可以理解你的问题