Tags
- Article & User
- update
- migrations
- 이진트리
- 뷰
- count
- Queue
- 스택
- 트리
- create
- ORM
- SQL
- DB
- Vue
- delete
- 그리디
- 완전검색
- stack
- 백트래킹
- 통계학
- M:N
- distinct
- 큐
- outer join
- N:1
- Django
- regexp
- drf
- Tree
- 쟝고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Notice
Recent Posts
Link
데이터 분석 기술 블로그
IN 연산 본문
IN 연산자란?
"IN" 연산자는 특정 열의 값이 지정된 목록에 포함되어 있는지 확인하는 데 사용됩니다. 여러 값을 비교할 때 간결하게 표현할 수 있어 OR 조건문의 대안으로 많이 활용됩니다.
IN 연산자의 기본 구문
SELECT column_name
FROM table_name
WHERE column_name IN (value1, value2, ...);
- column_name: 확인할 대상 열.
- value1, value2,...: 일치 여부를 확인할 값의 목록.
IN의 특징
- IN 조건의 값 목록:
- 값 목록은 숫자, 문자열, NULL을 포함할 수 있습니다.
- 쉼표(,)로 구분된 여러 값으로 구성됩니다.
- NOT IN 사용:
- 특정 값 목록에 포함되지 않은 데이터를 필터링할 때 사용.
- 구문: WHERE column_name NOT IN (value1, value2,...);
- 서브쿼리와 함께 사용 가능:
- 값 목록 대신 서브쿼리를 사용할 수 있습니다.
- 구문: 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 |