2012-12-19 3 views
-1

나는 데이터가 테이블에서오고 데이터에 일요일의 행이없고 일요일의 행을 쿼리를 사용하여 추가하려고합니다. 내 쿼리 결과는 다음과 같습니다. 쿼리oracle sql에서 다음 행을 얻는 방법

select bpv_date from all_dates 

결과는 내가 각 month.Please 도움말 동적으로 일요일의 행을 만들려면이

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

처럼!

+2

는 "일요일의 행"무엇을 의미합니까? 2012 년 2 월 2 일과 2012 년 12 월 30 일은 일요일에 있습니다. – AlexZam

+2

테이블 구조는 무엇입니까? 더 많은 열이 있거나 유일한 것인가? 그리고 그 데이터 유형은 무엇입니까? (DATE 또는 VARCHAR)? –

+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

요구 사항이 헷갈릴 때 힘들어요;) –

+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

또는'select sysdate + level from dual connect by level <= 365' – Ben

관련 문제