2015-03-03 89 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