BookmarkSubscribeRSS Feed

EXCEPT

Started yesterday by
Modified yesterday by
Views 57

EXCEPT 구문은 데이터를 비교할 때, 사용하는 구문으로 중복을 제거하고 차집합을 출력합니다.

 

 

 

image.png

 https://www.sqlservertutorial.net/sql-server-basics/sql-server-except/

 

 

위 이미지에서 보면 T1 - T2의 값으로 첫 번째 데이터에는 있지만 두 번째 데이터에는 없는 값을 출력합니다. 이 때 두개의 테이블에서 중복값이 있을 경우 중복을 제거합니다.

 

 

 

 ■ 활용 데이터

 

 

data DATA1;
    length name $10 dept $10;
    input name $ dept $ age;
    datalines;
김민수 영업 28
김민수 영업 28
이수진 개발 31
박지훈 인사 26
;
run;

data DATA2;
    length name $10 dept $10;
    input name $ dept $ age;
    datalines;
최유진 마케팅 29
이수진 개발 31
정현우 영업 33
;
run;

 

 

 ■ 예제 1 - EXCEPT

 

proc sql;
    select *
    from DATA1
	EXCEPT
    select *
    from DATA2
    ;
quit;

 

 image.png

 

 

 

DATA1에만 있는 '김민수 영업 28', '박지훈 인사 26' 의 값만 출력되고 '이수진 개발 31'은 DATA1과 DATA2에 동시에 있기 때문에 중복을 제거하고 출력됩니다.

'김민수 영업 28'은 DATA1에 2개가 있지만 중복을 제거고 출력합니다.

■ 예제 2 - EXCEPT ALL

EXCEPT ALL은 DATA1에만 있는 행을 출력하지만, 중복을 유지하는 구문입니다.

중복을 유지하는 방법에 대해서 EXCEPT 구문과는 차이가 있습니다.

proc sql; select * from DATA1 EXCEPT ALL select * from DATA2 ; quit;
 

image.png

 

 

 DATA1에 있는값만 출력을 하지만, EXCEPT 구문과는 다르게 중복된 값 '김민수 영업 28'에 대해서는 중복을 제거하지 않고 그대로 출력합니다.

 

Contributors
Version history
Last update:
yesterday
Updated by:

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.

Explore Now →
Article Labels
Article Tags