-1

我有以下查询,其中数据来自表,并且数据中没有星期天的行,我想使用查询添加星期天的行。这是我的查询结果和查询

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

我想为每个月动态创建一行星期日。请帮助!

4

2 回答 2

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
于 2012-12-19T13:36:37.933 回答
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;

这将创建一个只有星期天的表。我不确定这是否是您想要的,但您的问题相当模糊。

于 2012-12-19T13:24:31.143 回答