2015-03-03 91 views
1

我不知道,如果標題是正確的,但basicaly我需要這個(查詢結果):SQL變換兩條記錄成兩列

r_e_s_id person_id 
89074  161704 
89074  161703 
89095  161708 
89095  161707 
68651  129884 
68651  129883 
81512  161074 
81512  161073 

要被插入/更新(如果會有在表r_e_s_id值)到一具有的cols表COMM_PROP - r_e_s_id,perid1,perid2 ......像這樣:

r_e_s_id perid1 perid2 
89074  161704 161703 
89095  161708 161707 
68651  129884 129883 
81512  161074 161073 

我怎麼能這樣做呢?我正在使用Oracle 11g。

謝謝你的幫助!

+0

什麼版本的Oracle您使用的是? – Taryn 2015-03-03 14:17:38

+0

如果不是不同的列,那麼你使用字符串聚合技術。取決於您的版本,有幾種方法。但是,如果您希望它成爲不同的列,那麼您需要UNPIVOT。但是,正如@bluefeet所說,你需要告訴我們版本。 – 2015-03-03 14:25:21

+0

謝謝。版本是11g – 2015-03-03 14:27:53

回答

1

僅考慮2個值,即1個max和每r_e_s_id 1分鐘,試試這個: -

SELECT r_e_s_id, MAX(person_id) AS perid1, MIN(person_id) AS perid2 
FROM YOUR_TABLE 
GROUP BY r_e_s_id; 
+1

我不明白投票下來。我認爲這是一個可能的解決方案。 – Aramillo 2015-03-03 14:42:54

+0

不是我的投票,但如果他們有兩個以上的值會發生什麼?這是行不通的 – Taryn 2015-03-03 14:52:22

+1

That's yi have written'考慮只有2個值,即每個r_e_s_id' 1個最大和1分鐘.................並且從樣本清楚可見的是好。 – 2015-03-03 14:53:10