안녕하세요, 오라클 DB 관련해서 질문있습니다. TEMP01 테이블에 TEMP02 일부 데이터를 중복된 데이터를 제외한 것만 저장을 합니다. 질문은 TEMP02 테이블에 연락처(CONTACT)와 TEMP01 테이블에 동일한 연락처 데이터가 있을 때 해당 데이터만 제외하고 저장하는 방법이 무엇인지 궁금합니다. 아래는 제가 구성한 SQL문입니다. INSERT INTO TEMP01 (CONTACT) SELECT A.CONTACT FROM TEMP02 A WHERE A.CAL_CD = '2' AND A.VISIT_DATE = '20230519' AND CONTACT IS NOT NULL GROUP BY A.TEMP003;
답변 1
WHERE 절 안에 TEMP01 테이블과 TEMP02 테이블 간에 중복된 CONTACT 값이 있는지 추가로 확인을 해줘야 할 것 같습니다. 그리고 TEMP02 테이블의 CONTACT 칼럼에 UNIQUE 제약 조건이 없다면 DISTINCT 키워드를 사용하는 것이 안전할 것 같습니다.
1INSERT INTO TEMP01 (CONTACT)
2SELECT DISTINCT A.CONTACT
3FROM TEMP02 A
4WHERE A.CAL_CD = '2' AND A.VISIT_DATE = '20230519' AND A.CONTACT IS NOT NULL
5AND NOT EXISTS (SELECT 1 FROM TEMP01 B WHERE B.CONTACT = A.CONTACT);
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직 개발자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!