비교 조건식

    비교 조건식은 논리 연산자나 ANY, SOME, ALL 키워드로 비교하는 조건식을 말한다. 여기서는 ANY, SOME, ALL 비교에 대해서 알아 볼텐데 먼저 ANY를 살펴 보자.

    입력

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

    결과

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

    이 쿼리는 급여가 2000이거나 3000, 4000인 사원을 추출하는 것이다. ANY가 ‘아무것’이나 ‘하나’란 뜻이 있으므로 위 문장은 세 가지 값, 즉 급여가 2000이나 3000이나 4000 중 하나라도 일치하는 모든 사원을 추출한 것이다. 따라서 ANY는 OR 조건으로 변환이 가능하며 다음 문장도 같은 결과를 반환한다.

    입력

        SELECT employee_id, salary
          FROM employees
         WHERE salary = 2000
            OR salary = 3000
            OR salary = 4000
         ORDER BY employee_id;
    

    결과

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

    반면 ALL은 모든 조건을 동시에 만족해야 한다. 다음 쿼리를 보자.

    입력

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

    결과

        선택된 행 없음
    

    이 문장은 급여가 2000, 3000, 4000 모두에 해당되는 사원을 조회하므로 조회되는 데이터가 없다. 한 사원의 급여는 한 가지 값만 가지고 있으므로 논리적으로 봐도 잘못된 쿼리다. ANY와는 반대로 ALL 조건식은 AND 조건으로 변환할 수 있다.

    마지막으로 알아 볼 SOME은 ANY와 동일하게 사용되며 동작한다.

    입력

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

    결과

        EMPLOYEE_ID   SALARY
        ------------ ---------
                187       3000
                192       4000
                197       3000
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.