Note/DB

NOT EXISTS 문의 사용

Delia :D 2011. 6. 23. 13:26
SELECT
A.PGM_ID, '9125061' AS EMPL_NO,
A.I_SELECT, A.I_INSERT, A.I_UPDATE,
A.I_DELETE, A.I_PRINT, A.LEVEL
FROM (
         SELECT   *
         FROM      TAUTH
         WHERE    EMPL_NO = 'SYSTEMS'
)  A
WHERE NOT EXISTS (
         SELECT   *
         FROM      AUTH B
         WHERE    A.PGM_ID = B.PGM_ID
         AND        B.EMPL_NO = '9125061'
)



=> TAUTH테이블에서 EMPL_NO가 SYSTEMS인 결과집합 A를 구한다.

=> TAUTH테이블에서 EMPL_NO가 '9125061'인 결과집합 B를 구한다.

=> A 결과집합의 PGM_ID 와 B 결과집합의 PGM_ID를 비교하여 B 결과집합에는 존재하지않는 A 결과집합의 PGM_ID에 해당하는 데이터를 조회 한다.

=> 위 쿼리문은 A ⊃ B 일때 A - B 의 결과 이다.

'Note > DB' 카테고리의 다른 글

MSSQL DB 상태변경  (0) 2011.06.23
MSSQL DB에 있는 저장 프로시저, 테이블 목록 가져오기  (0) 2011.06.23
MSSQL ISNULL()  (0) 2011.06.23
MSSQL_문자열 함수 정리  (0) 2011.06.23
WinXP + MSSQL Enterprise Edition  (0) 2011.03.25