a 라는 필드의 값이 20000131 이렇게 있을 경우 b라는 필드의 값이 8이면 a 라는 필드의 값을 20080131 로 변경하고 싶습니다.
만약 b라는 필드의 값이 6이면 20060131 이 되는거구요, b 필드의 값에 따라 a 라는 필드의 값을 바꾸고 싶은데 쿼리를 어떻게
만들어야 할지 많은 조언 부탁드립니다.
그럼 오늘도 좋은 하루 되세요!
UPDATE table명 SET a = substr(a,1,3)||b||substr(a,5)
답변 감사합니다.
WITH t AS ( SELECT '20000131' a, 8 b FROM dual UNION ALL SELECT '20000131', 6 FROM dual ) SELECT a, b , TO_CHAR(ADD_MONTHS(TO_DATE(a, 'yyyymmdd'), b * 12), 'yyyymmdd') c FROM t ;
무결성 오류는 중복에러입니다
transdate가 key 라서 같은 값으로 한건이상 있을수 없다는 뜻입니다.
데이타를 확인하시고 작업하시면 될것 같네요.
예를 들어) transdate b 갱신될값 -------- -- -------- 20000101 6 20060101 20010101 6 20060101 ==> 중복에러