我有一張如下所示的表格。在當前行中填充前一行的值Oracle視圖
現在我想要一個視圖,其中對於每一行,列START_DATE
中的值應該是前一行的END_DATE
中的值。 (忽略創建視圖的第一行,我將用垃圾值或空值填充)。
請提出任何建議。提前
我有一張如下所示的表格。在當前行中填充前一行的值Oracle視圖
現在我想要一個視圖,其中對於每一行,列START_DATE
中的值應該是前一行的END_DATE
中的值。 (忽略創建視圖的第一行,我將用垃圾值或空值填充)。
請提出任何建議。提前
select value1,
lag(end_date) over (order by end_date) as start_date,
end_date
from the_table;
如果沒有「上一個」行(基於由order by
定義的排序順序)感謝那麼lag()
函數返回NULL
。
如果你不希望NULL
值,但別的東西來代替在第一行,你可以提供的功能lag()
默認值:
select value1,
lag(end_date,1, DATE '2014-01-01') over (order by end_date) as start_date,
end_date
from the_table;
嗨..結束日期是表格中的列...我想在我的視圖中列開始日期 –
@VinodChelladurai:然後只需交換名稱。 –
SELECT t.ID, t.EndDate, Max(s.EndDate) as StartDate
FROM TableName t
LEFT JOIN TableName s ON t.EndDate> s.EndDate
GROUP BY t.ID, t.EndDate
請張貼表定義和樣本數據文字,而不是圖像。理想情況下包含一個http :: //sqlfiddle.com示例。 –
對不起,我雖然圖像將清楚解釋。 –
查看LAG函數 – Randy