2013-07-04 3 views
2

oracle의 생년월일 열을 기준으로 age 열이 null 인 경우 age 열을 업데이트하는 방법은 무엇입니까? 테이블 t1 (출처 : 표)이 같은oracle의 생년월일 열을 기준으로 age 열이 null 인 경우 age 열을 업데이트하는 방법은 무엇입니까?

 
Name  dob  age 
aaa  12-JUN-1985 
bbb  15-MAY-1991 
ccc  23-AUG-2000 

대상 테이블 :

 
Name  dob  age 
aaa  12-JUN-1985 28 
bbb  15-MAY-1991 22 
ccc  23-AUG-2000 13 
+4

당신이 다음 DOB를 입력하는 경우 명시 적으로 나이를 넣어야합니까? –

+5

내년에 모든 연령 기록을 늘리시겠습니까? 생년월일과 현재 날짜를 기준으로 연령을 반환하는 계산 된 필드를 더 만들 수 있습니다. –

+0

여기 내 친구들과 함께 있습니다.보기를 만들어야합니다. – haki

답변

2
update the_table 
    set age = months_between(current_date, dob)/12 
where age is null; 
0

당신이 시도 할 수 있습니까? 당신이 지속적으로 업데이트해야합니다으로

UPDATE <your table> SET age = NVL(age, MONTHS_BETWEEN(sysdate,dob)/12) 
2
UPDATE table 
    SET age =trunc(months_between(sysdate,dob)/12) 
WHERE age is null; 
0

나는이의 캠프에 확실히이야는 계산 된 필드 탄생의 기반으로 일해야한다. 당신이 그것을 할 필요가있는 경우

, 난 좋을 것 :

UPDATE [YOUR TABLE] 
SET age = NVL(age, 24 * (sysdate - dob)/8766) 

이 사용 시간 윤년을 고려한다 : 8766/24 = 365.25

Info on NVL function for substituting null values

관련 문제