2016-04-29 101 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'