데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
테이터 수정을 잘못해서 많은 양의 테이터을 다시 수정할 일이 있습니다
UPDATE TBL_TICKBASE
SET CLOSE_DAY =
(SELECT RE_DAY FROM TBL_TICKRE
WHERE TBL_TICKRE. TICK_ID = TBL_TICKBASE. TICK_ID
AND TBL_TICKRE. TICK_KIND = TBL_TICKBASE. TICK_KIND
AND TBL_TICKRE. COM_ID = TBL_TICKBASE. COM_ID )
WHERE CL_CHK ='Y'
이렇게 쿼리을 돌렸더니
메시지 515, 수준 16, 상태 2, 줄 1
'hanwoori.dbo.tbl_tickbase' 테이블, 'close_day' 열에 NULL 값을 삽입할 수 없습니다. 열에서 null을 사용할 수 없습니다. UPDATE이(가) 실패했습니다.
문이 종료되었습니다.
(0개 행이 영향을 받음)
이렇게 되네요..어떤식으로 해야 하는지요...?
Comment 1
-
건우아빠
2018.11.23 14:18
서브 쿼리에 isnull(서브쿼리 , '') 를 하시면 널 문제는 해결 됩니다.다른 방법으로--select *update a set a.CLOSE_DAY = isnull(b.RE_DAY,'')from TBL_TICKBASE a join TBL_TICKRE bon a. TICK_ID = b. TICK_IDAND a. TICK_KIND = b. TICK_KINDAND a. COM_ID = b. COM_ID