본문 바로가기

Database/MS SQL

MS SQL。논리 연산자 - IN/NOT IN, EXISTS/NOT EXISTS

728x90
반응형

데이터의 존재, 포함, 일치 여부 확인

 

1. IN/NOT IN

조건값 포함 된 데이터 조회(IN), 조건값 제외 한 데이터 조회(NOT IN)

 

# IN

 

SELECT *
  FROM [테이블명]
 WHERE [필드] IN [값1, 값2, ..., 값n]

 

# NOT IN

 

SELECT *
  FROM [테이블명]
 WHERE [필드] NOT IN [값1, 값2, ..., 값n]

 

 

2. EXISTS/NOT EXISTS

존재 정량자(Existential Quantifier), 검색된 투플의 존재 유무 검사하며 실행 결과는 참과 거짓

 

# EXISTS

 

SELECT *
  FROM [테이블명1]
 WHERE EXISTS (SELECT TOP 1 1
                 FROM [테이블명2]
                WHERE [테이블명1].[필드] = [테이블명2].[필드])

 

 

# NOT EXISTS

 

SELECT *
  FROM [테이블명1]
 WHERE NOT EXISTS (SELECT TOP 1 1
               	     FROM [테이블명2]
            	    WHERE [테이블명1].[필드] = [테이블명2].[필드])

 

 

3. NOT IN과 NOT EXISTS 차이

 

레코드 NULL 존재 유무 차이

728x90
반응형