2014-05-06 52 views
0

表包含以下列和數據:如何通過變換並重復下一行將行轉換爲列?

 
Id | Date 

1 | 04/09/2014 13:00:00 
1 | 04/10/2014 15:00:00 
1 | 04/12/2014 16:00:00 
1 | 04/13/2014 18:00:00 
2 | 04/11/2014 13:00:00 
2 | 04/12/2014 15:00:00 
2 | 04/12/2014 16:00:00 

我需要得到每個垂直對每個ID並將其轉換爲水平視圖,其結果應該是這樣的:

 
| ID |     DATE1 |     DATE2 | 
| 1 | April, 09 2014 13:00:00 | April, 10 2014 15:00:00 | 
| 1 | April, 10 2014 15:00:00 | April, 12 2014 16:00:00 | 
| 1 | April, 12 2014 16:00:00 | April, 13 2014 18:00:00 | 
| 1 | April, 13 2014 18:00:00 |     (null) | 
| 2 | April, 11 2014 13:00:00 | April, 12 2014 15:00:00 | 
| 2 | April, 12 2014 15:00:00 | April, 12 2014 16:00:00 | 
| 2 | April, 12 2014 16:00:00 |     (null) | 
+0

我有SQL服務器的解決方案,並試圖將其轉換爲Oracle,但不能 – user3580877

回答

0

試試這個:

select id, date date1, (select date 
         from data_table t2 
         where t2.ROWID>t1.ROWID and t2.date>t1.date and ROWNUM=1) date2 
from data_table t1 

我不是一個Oracle傢伙,有可能是在給定解決方案的錯誤,你也將需要格式化DATE根據您的需要的字段。

+0

謝謝,此解決方案不能按預期工作,它跳過一些日期。 – user3580877

+0

你可以請粘貼輸出在[pastebin](http://pastebin.com/),因爲我沒有在這裏安裝Oracle :) –

+0

我沒有要求的聲譽,以回答我的問題,通過顯示結果:( – user3580877