오라클 IN 연산자

IN 연산자는 SQL에서 여러 값 중 하나와 일치하는지 확인할 때 사용하는 연산자입니다.

주로 WHERE 절에서 사용되며, 특정 컬럼의 값이 주어진 여러 값 중 하나와 일치하면 해당 행이 반환됩니다.

 

기본문법

SELECT column1, column2, ...
FROM table_name
WHERE column_name IN (value1, value2, ..., valueN);

 

IN 연산자의 동작 예시

다음과 같은 테이블 employees 가 있다고 가정해 봅시다.

 

특정 부서에 속한 직원을 조회하려면 다음과 같이 작성합니다.

SELECT name, department
FROM employees
WHERE department IN ('Sales', 'IT');

 

NOT IN 사용하기

NOT IN 은 특정 값과 일치하지 않는 데이터를 조회할 때 사용합니다.

SELECT name, department
FROM employees
WHERE department NOT IN ('Sales');

 

IN 과 OR

IN 연산자는 여러 개의 OR 조건을 연결한 것과 같은 역할을 합니다.

하지만 코드가 더 간결해지기 때문에 IN 연산자를 사용합니다.

IN 연산자는 1000개 값까지만 입력할 수 있습니다.
그 이상을 입력하기 위해서는 IN 연산자를 1000개 이하로 여러 개의 OR 로 분리해야 합니다.
-- IN 연산자 사용
SELECT name
FROM employees
WHERE department IN ('Sales', 'IT', 'Marketing');

-- OR 조건 사용
SELECT name
FROM employees
WHERE department = 'Sales' OR department = 'IT' OR department = 'Marketing';

 

서브쿼리와 IN 사용

IN 연산자는 서브쿼리와 함께 사용할 수 있습니다. 

서브쿼리는 조건에 맞는 여러 값을 반환할 수 있습니다.

SELECT name, department
FROM employees
WHERE department IN (
    SELECT department
    FROM employees
    WHERE department IN ('Sales', 'IT')
);