2012-12-19 14 views
-1

我有以下查詢,其中數據來自表和數據中沒有星期天的行,我想添加使用查詢的星期日行。我的查詢結果和查詢如何獲得oracle中的下一行sql

select bpv_date from all_dates 

,結果是這樣的

01-dec-2012 
02-dec-2012 
03-dec-2012 
04-dec-2012 
05-dec-2012 
06-dec-2012 
. 
. 
. 
. 
30-dec-2012 

我要動態地創建週日的一排每個month.Please幫助!

+2

你所說的 「星期天的排」 是什麼意思?順便說一句,2012年12月2日和2012年12月30日是週日。 – AlexZam

+2

什麼是表格結構?有更多的列還是唯一的列,它的數據類型是什麼? (DATE或VARCHAR)? – 2012-12-19 13:04:44

+0

Actualy我已經給出了示例數據,我的意思是沒有星期日的數據,我想用sql查詢添加空白數據的星期日行 – user1915635

回答

2

我一分錢(有點像玩笑:))

select bpv_date 
from all_dates 
union 
select bpv_date + 1 
from all_dates 
where to_char(bpv_date, 'D') = 7 -- saturday for NLS_LANG='AMERICAN', otherwise use 6 
+1

要求模糊時很難;) – 2012-12-19 13:38:05

+0

Ahhh Goooooooood One – user1915635

0

首先,你可以這樣做:to_char(sysdate,'DY')弄清楚這天是星期天,然後將其添加到if聲明,然後循環,像這樣:

BEGIN 
    FOR i IN 1..365 LOOP 
    IF(to_char(sysdate-1+i,'DY') IN ('SUN')) 
    THEN 
     INSERT INTO MY_TABLE (ID, MY_DATE) 
     VALUES (i, (to_date(sysdate,'DD-MON-YY')-1)+i); 
    END IF; 
    END LOOP; 
END; 

這將創建一個只有週日的表在裏面。我不確定這是你想不想要的,但你的問題很模糊。

+1

或'通過級別<= 365'從雙連接中選擇sysdate +級別 – Ben