簡體   English   中英

根據列值展開表行

[英]Expand table rows based on column value

我有一個有兩列的桌子; EVENT_DATE日期和RANG編號第一列包含事件的日期,而第二列包含該事件的周期。 這是一個數據樣本

| EVENT_DATE | RANG |
|------------|------|
| 03/01/2015 |    1 |
| 09/04/2015 |    3 |
| 15/10/2015 |    2 | 

有什么辦法可以根據RANG值增加它來擴展EVENT_DATE ,所以輸出就像是,

| EVENT_DATE |
|------------|
| 03/01/2015 |
| 04/01/2015 |

| 09/04/2015 |
| 10/04/2015 |
| 11/04/2015 |
| 12/04/2015 |

| 15/10/2015 |
| 16/10/2015 |
| 17/10/2015 |

干得好。

select to_char(event_date + (l - 1),'dd/mm/yyyy') from tab1 t
left outer join (
  select level l from dual
  connect by level <= (select max(rang) + 1 from tab1)
) on l <= rang + 1
order by event_date, 1;

SQL小提琴

這應該工作:

select (t.event_date + t2.value) as event_date
from t, (select rownum -1 as value from all_objects) t2
where t2.value <= t.rang
order by 1 asc;

另一個可能答案。 假設Event1是你的表

with tmp as
(select MAX(RANG) s FROM Event1)
,rec as (
    select 0 num
    union all
    select num+1 from rec where num < (select s from tmp))
SELECT DATEADD(DAY, r.num, e.Event_Date) Result from rec r join Event1 e on r.num <= e.RANG
ORDER BY DATEADD(DAY, r.num, e.Event_Date)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM