2014-02-14 39 views
0

我有一個檢索兩列的查詢。在查詢結果中動態添加列。 Oracle

像這樣:

select subscription_id, months from subscriptions; 

現在,結果是這樣的:

subscription_id months 
     1254   4 
     5896   1 
     8965   3 

我想在查詢結果中添加,在右側,列動態,依賴的檢索的月份數。如果一條記錄的結果是4,那麼我會在接下來的4列中爲同一行添加值4,依此類推。

例子:

subscription_id months 0  1 2 3 4 5 
     1254   4  4  4 4 4 4 
     5896   1  1  1 
     8965   3  3  3 3 3 3 

注:我使用的是Oracle 10g中,支點是無法使用。要做到這一點

回答

1

方式一:

select 
     subscription_id, 
     months, 
     CASE WHEN MONTHS >= 0 THEN MONTHS END Month_0, 
     CASE WHEN MONTHS >= 1 THEN MONTHS END Month_1, 
     CASE WHEN MONTHS >= 2 THEN MONTHS END Month_2, 
     CASE WHEN MONTHS >= 3 THEN MONTHS END Month_3, 
     CASE WHEN MONTHS >= 4 THEN MONTHS END Month_4, 
     CASE WHEN MONTHS >= 5 THEN MONTHS END Month_5, 
     CASE WHEN MONTHS >= 6 THEN MONTHS END Month_6, 
     CASE WHEN MONTHS >= 7 THEN MONTHS END Month_7, 
     CASE WHEN MONTHS >= 8 THEN MONTHS END Month_8, 
     CASE WHEN MONTHS >= 9 THEN MONTHS END Month_9,              
     CASE WHEN MONTHS >= 10 THEN MONTHS END Month_10, 
     CASE WHEN MONTHS >= 11 THEN MONTHS END Month_11, 
     CASE WHEN MONTHS >= 12 THEN MONTHS END Month_12 
from subscriptions;