将多行转换为多行,其中包含来自第一个表

时间:2016-10-28 09:54:38

标签: sql sql-server select

请帮我在Microsoft SQL Server中创建select sql,我希望从表中转换:

enter image description here

转换为新表,从PartName值获取不同的DeviceCode和新列,并且PartName值是无限制的(DVD,鼠标,键盘,监视器......):

我只是在那里附上完整的图片,包含更多样本数据,抱歉我无法在帖子中添加表格查看器:https://farm6.staticflickr.com/5628/30615995995_a0ed8b65fa_o_d.jpg

2 个答案:

答案 0 :(得分:0)

 create table #d
( 
device_id int,
device_code varchar(10),part_id int,part_name varchar(100),info varchar(100)
)
insert into #d values
(1,'1.1g',1,'ram','szaga'),
(1,'1.1g',3,'mother boad','saagg'),
(1,'1.1g',4,'cpu','dgsg')


   select device_id,device_code,
      max(case when part_name = 'ram' then info end) Firstname,
      max(case when part_name = 'mother boad' then  info end) Amount,
      max(case when part_name = 'cpu' then info end) PostalCode
    from #d
    group by device_id,device_code

答案 1 :(得分:0)

我在主题中有一个新解决的细节任务:

Create dynamic select get value for column name - in SQL Server

非常感谢Yared顾问帮我解决了这个问题。

最诚挚的问候, Hien Nguyen