2016-02-11 85 views
0

我有這個表結果CONCAT多個行​​與SQL

team_id | match_id | result 
---------------------------- 
1  |13  | 1-1 
1  |13  | 2-0 
1  |13  | 0-3 

我想改變它在這個

team_id | match_id | result | result 2 | result 3 
-------------------------------------------------- 
1  |13  | 1-1 | 2-0 | 0-3 
+1

它會一直是一個固定數量的匹配,或可以匹配的數量不同嗎?另外,你是否真的需要在數據層做到這一點?在表現層做事可能會更容易。 – eftpotrm

+0

另外,有沒有什麼要訂購的結果?如果沒有,比賽可以以任何順序出現。 –

+0

你如何確定最終結果值必須在結果欄1,2或3中? – Kobi

回答

1

如果排序是任意的,恰好有THRE,那麼你可以使用有條件的聚合:

select team_id, max(case when seqnum = 1 then result end) as result1, 
     max(case when seqnum = 2 then result end) as result2, 
     max(case when seqnum = 3 then result end) as result3 
from (select t.*, 
      row_number() over (partition by team_id order by team_id) as seqnum 
     from t 
    ) t 
group by team_id; 
+0

thx,這是我想要的,但要做到這一點,我必須確定匹配的數量,但沒關係;) – Shiroga