Sql 将行转换为列并保留数据对
MSSQL中存在以下问题:我有一个表,其中包含4列 示例表:Sql 将行转换为列并保留数据对,sql,sql-server,pivot,Sql,Sql Server,Pivot,MSSQL中存在以下问题:我有一个表,其中包含4列 示例表: JunctionId | type| color| value 1 | a | red | 5| 1 | b | green | 10| 2 | a | orange | 40| 2 | b | yellow | 35| 3 | a | blue | 6| 3 | b | cyan | 9| 现在,我想得到以下结果: 1 | a | red | 5 | b | green | 10 2 | a | orang
JunctionId | type| color| value
1 | a | red | 5|
1 | b | green | 10|
2 | a | orange | 40|
2 | b | yellow | 35|
3 | a | blue | 6|
3 | b | cyan | 9|
现在,我想得到以下结果:
1 | a | red | 5 | b | green | 10
2 | a | orange | 40 | b | yellow | 35
3 | a | blue | 6 | b | cyan | 9
我尝试使用PIVOT,但由于值不同,它返回了多行。我会使用selfjoin,但我有12种不同的“类型”。任何想法都将受到欢迎
(注意:我无法使用此stackoverflow表内容…抱歉)自连接时间
select a1.junctionid,
a1.type as a_type,
a1.color as a_color,
a1.value as a_value,
a2.type as b_type,
a2.color as b_color,
a2.value as b_value
from MyTable a1
inner join MyTable a2
on a1.junctionid = a2.junctionid
where a1.type = 'a'
and a2.type = 'b'
是的,但正如我所说的,我真的不想使用self-join,因为我有12种不同的类型。但是看起来我要去,因为我不能使用程序:/不过,谢谢你的回答。