EXCEPT 구문은 데이터를 비교할 때, 사용하는 구문으로 중복을 제거하고 차집합을 출력합니다.
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;
DATA1에만 있는 '김민수 영업 28', '박지훈 인사 26' 의 값만 출력되고 '이수진 개발 31'은 DATA1과 DATA2에 동시에 있기 때문에 중복을 제거하고 출력됩니다.
'김민수 영업 28'은 DATA1에 2개가 있지만 중복을 제거고 출력합니다.
■ 예제 2 - EXCEPT ALL
EXCEPT ALL은 DATA1에만 있는 행을 출력하지만, 중복을 유지하는 구문입니다.
중복을 유지하는 방법에 대해서 EXCEPT 구문과는 차이가 있습니다.
DATA1에 있는값만 출력을 하지만, EXCEPT 구문과는 다르게 중복된 값 '김민수 영업 28'에 대해서는 중복을 제거하지 않고 그대로 출력합니다.
Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.
Explore Now →