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”로도 바꿔 쓸 수 있다.

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