우당탕탕 개발일기
두 쿼리 결과 비교하는 방법 : EXCEPT, NOT IN 본문
728x90
EXCEPT
SELECT DISTINCT SuhumNo
FROM z2023_SubjectScore SS
INNER JOIN tbDocuMaster DM ON DM.IpsiYear = SS.IpsiYear
AND DM.IpsiGubun = SS.IpsiGubun
AND DM.SocialNumber_Hash = SS.SocialNumber_Hash
WHERE GraduateYear > 2022
EXCEPT
-- 두 번째 쿼리
SELECT DISTINCT SuhumNo
FROM tbDocuMaster
WHERE GraduateYear > 2022;
첫 번째 쿼리에서 반환된 결과에서 두 번째 쿼리에서 반환된 결과를 제외한 결과를 확인 가능.
만약 이 결과가 비어있다면 두 쿼리의 결과는 같고, 결과가 있다면 두 쿼리가 반환하는 값들이 다른 것을 알 수 있다.
NOT IN
-- 첫 번째 쿼리 결과에는 있지만 두 번째 쿼리 결과에는 없는 값 찾기
SELECT DISTINCT SuhumNo
FROM z2023_SubjectScore SS
INNER JOIN tbDocuMaster DM ON DM.IpsiYear = SS.IpsiYear
AND DM.IpsiGubun = SS.IpsiGubun
AND DM.SocialNumber_Hash = SS.SocialNumber_Hash
WHERE GraduateYear > 2022
AND SuhumNo NOT IN (
SELECT DISTINCT SuhumNo
FROM tbDocuMaster
WHERE GraduateYear > 2022
);
-- 두 번째 쿼리 결과에는 있지만 첫 번째 쿼리 결과에는 없는 값 찾기
SELECT DISTINCT SuhumNo
FROM tbDocuMaster
WHERE GraduateYear > 2022
AND SuhumNo NOT IN (
SELECT DISTINCT SuhumNo
FROM z2023_SubjectScore SS
INNER JOIN tbDocuMaster DM ON DM.IpsiYear = SS.IpsiYear
AND DM.IpsiGubun = SS.IpsiGubun
AND DM.SocialNumber_Hash = SS.SocialNumber_Hash
WHERE GraduateYear > 2022
);
결과 집합 간의 차이를 쉽게 확인할 수 있습니다. 결과가 다르다면 조인 조건 또는 필터링 조건에 의해 결과가
728x90
'What I Learned > SQL' 카테고리의 다른 글
데이터 파일과 로그 파일, 그리고 축소 방법 (0) | 2023.08.22 |
---|---|
[MSSQL/SSMS] 데이터 정렬(Collation) 충돌 (0) | 2023.01.03 |
[MSSQL/SSMS] 한글 깨질 때 / 한글 '???'으로 나올 때 (0) | 2023.01.02 |
MSSQL 에러 (0) | 2022.12.01 |
[SQL] join 의 종류 (0) | 2022.10.18 |