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
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 |