더북(TheBook)

IN 조건식

IN 조건식은 조건절에 명시한 값이 포함된 건을 반환하는데 앞에서 배웠던 ANY와 비슷하다.

입력

    SELECT employee_id, salary
      FROM employees
     WHERE salary IN (2000, 3000, 4000)
     ORDER BY employee_id;

결과

    EMPLOYEE_ID    SALARY
    ------------ -----------
            187         3000
            192         4000
            197         3000

이 쿼리는 급여가 2000, 3000, 4000에 포함되는 사원을 추출한 결과로, IN 역시 OR 조건으로 변환이 가능하며 ‘=ANY’형태로 바꿔 쓸 수 있다. 다만 ANY는 등호 연산자 뿐만 아니라 ‘>’, ‘>=’, ‘<’, ‘<=’, ‘< >’, ‘!=’ 등의 비교 연산자도 사용할 수 있다는 점이 다르다.

입력

    SELECT employee_id, salary
      FROM employees
     WHERE salary NOT IN (2000, 3000, 4000)
     ORDER BY employee_id;

결과

    EMPLOYEE_ID   SALARY
    ----------- ----------
            100      24000
            101      17000
            102      17000
            103       9000
    ...
    104개의 행이 선택됨.

이 쿼리는 NOT IN을 사용해서 급여가 2000, 3000, 4000이 아닌 건을 조회하고 있다. 조건을 풀어 쓰면 “salary < > 2000 AND salary < > 3000 AND salary < > 4000”이며, “< >ALL”로도 바꿔 쓸 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.