다음 SQL 문의 실행 결과로 옳은 것은?select 사원명 from … | [컴퓨터활용능력 1급 필기] 12년 1회차 기출문제 상세 페이지
1[컴퓨터활용능력 1급 필기] 12년 1회차
다음 SQL 문의 실행 결과로 옳은 것은?select 사원명 from 사원
where 부서 = '영업부' and
거주지 in (select 거주지 from 사원
where 부서 = '개발부');
1
영업부 사원들과 다른 거주지에 사는 개발부 사원명
2
개발부 사원들과 다른 거주지에 사는 영업부 사원명
3
영업부 사원들과 같은 거주지에 사는 개발부 사원명
4
개발부 사원들과 같은 거주지에 사는 영업부 사원명
해설
이 질의는 하위 질의(서브쿼리)를 사용한 형태입니다. 안쪽의 select 거주지 from 사원 where 부서 = '개발부'가 먼저 실행되어 개발부 사원들의 거주지 목록을 만들어 냅니다.
바깥 질의는 부서 = '영업부' 조건으로 대상을 영업부 사원으로 한정한 다음, 거주지 in (…) 조건으로 그 사원의 거주지가 앞서 구한 개발부 거주지 목록에 포함되는 경우만 남깁니다. 즉 두 조건이 AND 로 묶여 '영업부에 속하면서, 거주지가 개발부 사원의 거주지와 일치하는' 사원만 걸러집니다.
최종적으로 출력되는 열은 select 절에 적힌 사원명이므로, 결과는 개발부 사원들과 거주지가 같은 영업부 사원의 이름이 됩니다. IN 은 일치하는 값을 고르는 연산자이므로 '다른 거주지'로 해석하면 안 되고, 그런 결과를 얻으려면 NOT IN 을 써야 합니다. 또한 최종 조회 대상이 영업부라는 점(개발부가 아님)에 주의해야 합니다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.