데이터 분석 기술 블로그

IN 연산 본문

SQL/개념

IN 연산

데이터분석가 이채은 2024. 11. 22. 17:22

IN 연산자란?

"IN" 연산자는 특정 열의 값이 지정된 목록에 포함되어 있는지 확인하는 데 사용됩니다. 여러 값을 비교할 때 간결하게 표현할 수 있어 OR 조건문의 대안으로 많이 활용됩니다.


IN 연산자의 기본 구문

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

 

  • column_name: 확인할 대상 열.
  • value1, value2,...: 일치 여부를 확인할 값의 목록.

IN의 특징

 

  1. IN 조건의 값 목록:
    • 값 목록은 숫자, 문자열, NULL을 포함할 수 있습니다.
    • 쉼표(,)로 구분된 여러 값으로 구성됩니다.
  2. NOT IN 사용:
    • 특정 값 목록에 포함되지 않은 데이터를 필터링할 때 사용.
    • 구문: WHERE column_name NOT IN (value1, value2,...);
  3. 서브쿼리와 함께 사용 가능:
    • 값 목록 대신 서브쿼리를 사용할 수 있습니다.
    • 구문: WHERE column_name IN (SELECT other_column FROM other_table);

예제

 

 

1. 값 목록 사용

문제: 부서 ID가 101, 103, 104인 직원 조회

SELECT name
FROM Employees
WHERE department_id IN (101, 103, 104);

 


2. NOT IN 사용

문제: 부서 ID가 102가 아닌 직원 조회

SELECT name
FROM Employees
WHERE department_id NOT IN (102);


 

3. 서브쿼리 사용

문제: 다른 테이블에 있는 부서 ID와 일치하는 직원 조회

SELECT name
FROM Employees
WHERE department_id IN (SELECT department_id FROM Departments);
  • SELECT department_id FROM Departments:
    • Departments 테이블에서 가져온 값들과 Employees.department_id를 비교.

4. NULL 값 처리

문제: 특정 값 목록에 NULL이 포함된 경우

SELECT name
FROM Employees
WHERE department_id IN (101, NULL);

결과:

  • IN 연산자에서 NULL은 항상 무시됩니다.
  • NULL 값과의 비교는 **IS NULL**을 사용해야 합니다.

'SQL > 개념' 카테고리의 다른 글

BETWEEN ... AND 연산자  (0) 2024.11.24
OR 연산자  (0) 2024.11.23
INTERVAL 연산자  (0) 2024.11.21
MID 함수  (0) 2024.11.20
LEFT 함수  (0) 2024.11.19