2016-04-29 100 views
0

下面是样本数据和预期的结果:如何将数据从一列结果分离为多列?

表1:

out_number AMPS VA Feed 
1   0.00 0 A 
2   0.10 0 A 
3   0.15 0 A 
4   0.30 0 B 
5   0.40 0 B 
6   0.80 0 B 

查询结果:

out_number AMPS VA Feed out_number AMPS VA Feed 
1   0.00 0 A  4   0.30 0 B 
2   0.10 0 A  5   0.40 0 B 
3   0.15 0 A  6   0.80 0 B 

我当前的查询:

select d1.*, d2.out_number, d2.AMPS,d2.VA,d2.Feed 
from #tbl1 d1 , 
    #tbl1 d2 
where d1.Feed = 'A' and d2.Feed = 'B' 

但是,得到以下结果

enter image description here

+1

A行和B行之间没有关系? – jarlh

+0

如果有另一个A行,例如(7,0.85,1,A),预期的结果是什么? – jarlh

+0

(7,0.85,1,A,null,null,null,null) – user3090790

回答

0

试试这个,创建两个子集Feed = 'A'Feed = 'B'和独特的列加入他们(我使用的row_number()在这里)。

SELECT * 
FROM ( SELECT row_number() over(order by AMPS) row_no, * 
      FROM @table1 t1 where t1.Feed = 'A') T1 
    INNER JOIN (SELECT row_number() over(order by AMPS) row_no, * 
       FROM @table1 t2 where t2.Feed = 'B') T2 
     ON T1.row_no = T2.row_no 
+0

非常感谢,您节省了我的时间 – user3090790

0

您可以用内尝试加入同一个表

select d1.*, d2.out_number, d2.AMPS,d2.VA,d2.Feed 
from #tbl1 d1 
inner join #tbl1 d2 on d1.out_number = d.out_number 
where d1.Feed = 'A' and d2.Feed = 'B'