[sql] 서브쿼리에서 논리 연산자의 활용 방법

서브쿼리(subquery)는 SQL 문에서 다른 쿼리의 결과를 가지고 오는데 사용되는 중첩된 쿼리입니다. 논리 연산자는 서브쿼리를 효과적으로 활용할 수 있는데, 다양한 방법으로 사용되고 있습니다.

AND 연산자

AND 연산자는 서브쿼리의 결과가 모두 참일 때 전체 조건문이 참이 됩니다. 아래의 예시는 employees 테이블에서 department가 ‘Sales’이고 salary가 평균 이상인 직원을 조회하는 쿼리입니다.

SELECT *
FROM employees
WHERE department = 'Sales'
AND salary > (SELECT AVG(salary) FROM employees);

OR 연산자

OR 연산자는 서브쿼리의 결과 중 하나라도 참이면 전체 조건문이 참이 됩니다. 아래의 예시는 orders 테이블에서 customer_id가 특정 값이거나 amount가 특정 금액 이상인 주문을 조회하는 쿼리입니다.

SELECT *
FROM orders
WHERE customer_id = 1001
OR amount > (SELECT MAX(amount) * 0.9 FROM orders);

NOT 연산자

NOT 연산자는 서브쿼리의 결과를 부정합니다. 아래의 예시는 products 테이블에서 category가 특정 값이 아닌 제품을 조회하는 쿼리입니다.

SELECT *
FROM products
WHERE category <> (SELECT category FROM excluded_categories);

서브쿼리와 논리 연산자를 조합하여 복잡한 조건을 구성하는 방법은 다양하며, 상황에 따라 유연하게 활용될 수 있습니다.

위의 예시들을 통해 서브쿼리에서 논리 연산자의 활용 방법에 대해 알아보았습니다. 각 연산자의 특성을 잘 이해하여 다양한 SQL 쿼리를 작성하는 데 도움이 되었기를 바랍니다.

자세한 내용은 SQL 서브쿼리 레퍼런스를 참고하시기 바랍니다.