반응형
이번 글에서는 EXISTS, NOT EXISTS를 사용하여 서브쿼리 결과가 존재하는지에 따라 조건을 판단하는 방법을 배웠습니다.
이 문법은 "특정 조건을 만족하는 데이터가 있는가?"를 확인하는 데 매우 효과적입니다.
📌 예제 코드 ①: EXISTS가 참일 때
SELECT *
FROM nasdaq_company
WHERE EXISTS (
SELECT symbol
FROM nasdaq_company
WHERE symbol IN ('MSFT', 'AMD', 'AMZN')
);
💬 설명
- 서브쿼리가 하나 이상의 결과를 반환하면 EXISTS는 TRUE
- 결과적으로 nasdaq_company 테이블의 모든 행이 반환됨
- 이 조건문은 단순히 서브쿼리 결과의 유무만 판단하고, 메인 쿼리와의 연결 조건은 없음
📌 예제 코드 ②: EXISTS가 거짓일 때
SELECT *
FROM nasdaq_company
WHERE EXISTS (
SELECT symbol
FROM nasdaq_company
WHERE symbol IN ('123', '456', '789')
);
💬 설명
- 서브쿼리가 결과를 반환하지 않음
- 따라서 EXISTS는 FALSE가 되고, 아무 결과도 출력되지 않음
📌 예제 코드 ③: NOT EXISTS가 참일 때
SELECT *
FROM nasdaq_company
WHERE NOT EXISTS (
SELECT symbol
FROM nasdaq_company
WHERE symbol IN ('123', '456', '789')
);
💬 설명
- 서브쿼리가 결과를 반환하지 않음 → NOT EXISTS는 TRUE
- 따라서 nasdaq_company의 모든 행이 출력됨
💡 포인트 정리
- EXISTS (서브쿼리)는 결과가 존재하면 TRUE
- NOT EXISTS (서브쿼리)는 결과가 존재하지 않을 때 TRUE
- EXISTS는 서브쿼리의 실제 값이 아니라 존재 여부만 확인
- 메인 쿼리와의 연결 조건이 없다면 전체 행을 반환하거나 전혀 반환하지 않음
📌 정리하자면, 이번 강의에서는 EXISTS와 NOT EXISTS 구문을 사용해
서브쿼리의 결과 존재 여부에 따라 조건 분기하는 방법을 배웠습니다.
특히 다른 테이블과의 조건 연결에 많이 사용되며,
필터링 전 존재 검사를 해야 하는 로직에서 효율적으로 활용됩니다.
'SQL Server > 실기 정리' 카테고리의 다른 글
SQL Server 39강 - 문자열 함수와 문자열 결합 방식 (0) | 2025.06.04 |
---|---|
SQL Server 38강 - JOIN vs 서브쿼리를 통한 컬럼 병합 방식 비교 (0) | 2025.06.04 |
SQL Server 37강 - 서브쿼리를 활용한 INNER JOIN 비교 실습 (0) | 2025.06.04 |
SQL Server 35강 - ANY 연산자를 활용한 조건 비교 서브쿼리 (0) | 2025.06.04 |
SQL Server 34강 - IN 서브쿼리와 조인을 결합한 조건 필터링 (2) | 2025.06.04 |
SQL Server 33강 - 단일행 서브쿼리 (Single Row Subquery) 사용하기 (0) | 2025.06.04 |