[MSSQL] 예외처리, exists 사용법

2017. 5. 4. 15:56IT/MS-SQL

반응형

 

MS-SQL 예외처리 방법을 알아보자.

MSSQL에서 예외처리를 하고 싶을때 주로 exists 구문을 사용한다.

 

예를 들어서 Table1과 Table2의 데이터 중에서 한쪽에 없는것만 확인 하고 싶을때,

두 테이블의 여집합을 구하고 싶을때 사용한다.

 

1. Table Name : TEST01

Column : A, B, C, D

 

2. Table Name : TEST02

Column : C, D, E, F

 

 

ex)

INSERT INTO TEST01 ( A, B, C, D ) VALUES ( 'A1', 'B1', 'C1', 'D1' )
INSERT INTO TEST01 ( A, B, C, D ) VALUES ( 'A2', 'B2', 'C2', 'D2' )
INSERT INTO TEST01 ( A, B, C, D ) VALUES ( 'A3', 'B3', 'C3', 'D3' )
INSERT INTO TEST01 ( A, B, C, D ) VALUES ( 'A4', 'B4', 'C4', 'D4' )

INSERT INTO TEST02 ( C, D, E, F ) VALUES ( 'C1', 'D1', 'E1', 'F1' )
INSERT INTO TEST02 ( C, D, E, F ) VALUES ( 'C2', 'D2', 'E2', 'F2' )
INSERT INTO TEST02 ( C, D, E, F ) VALUES ( 'C3', 'D3', 'E3', 'F3' )
INSERT INTO TEST02 ( C, D, E, F ) VALUES ( 'C4', 'D4', 'E4', 'F4' )
INSERT INTO TEST02 ( C, D, E, F ) VALUES ( 'C5', 'D5', 'E5', 'F5' )

 

 

예외처리 구문

 

위에서 보는거와 같이

TEST02를 조회하면서 TEST01에 있는 데이터는 조회하지 않는 코드를 구현했다.

 

밑에 소스코드 부분을 작성해 두었으니 복사해서 참고하길 바란다.

select *
from TEST02
where 1=1
and not exists  (select null from TEST01 where TEST01.C = TEST02.C)

select *
from TEST02 T2
where 1=1
and not exists  (select null from TEST01 T1 where T1.C = T2.C)

반응형