공부, 기록

[MSSQL/SQL SERVER] 다중 컬럼 NOT IN 본문

공부/DATABASE

[MSSQL/SQL SERVER] 다중 컬럼 NOT IN

무는빼주세요 2021. 1. 23. 12:15

데이터를 조회하던 중 JOIN 조건에 대해 한쪽 테이블에만 있는 행들을 조회가 필요했다.

이런 경우 다른 DB에서는 다중컬럼에 NOT IN 조건을 걸어 탐색할 수 있었다.

하지만 MSSQL에선 다중컬럼에 대한 NOT IN을 사용할 수 없다.

 

해당 컬럼들의 리턴값을 문자열로 캐스팅하여 IN 으로 검색하였으나 비용이 너무 크게 잡혔다.

이를 해결하기위해서는 

OUTER 조인을 사용한 후 조건을 IS NULL로 주면 된다.

 

EX)

SELECT *

FROM TABLE_A AS A LEFT OUTER JOIN TABLE_B AS B

ON A.COL1 = B.COL1

WHERE B.COL1 IS NULL

'공부 > DATABASE' 카테고리의 다른 글

[MSSQL/SQL SERVER] 격리수준, 락(lock)  (0) 2021.04.04
[MSSQL/SQL SERVER] 실행계획  (0) 2021.03.23
[MSSQL/SQL SERVER] 서브쿼리  (0) 2021.03.06
[MSSQL/SQL SERVER] JOIN의 물리적 구조  (0) 2021.02.21
[MSSQL/SQL SERVER] 인덱스  (0) 2021.02.21