NOT EXISTS
주로 서브쿼리와 함께 사용되며 서브쿼리의 결과가 존재하지 않을 때 해당 조건을 만족하는 행을 검색하는 데 사용됨
(= 서브쿼리에 데이터가 존재하지 않을 경우 데이터가 조회된다.)
예를 들어,
주문(Order) 테이블에서 아직 발송되지 않은 주문을 선택하는 SQL 쿼리를 작성할 때,
SELECT OrderID, CustomerID
FROM Orders
WHERE NOT EXISTS (
SELECT 1
FROM Shipments
WHERE Shipments.OrderID = Orders.OrderID
);
여기서 SELECT 문에 1을 사용하면 해당 테이블의 개수만큼 1로 된 행을 출력
1은 TRUE를 의미하며 값의 존재유무(조건을 만족하는 결과가 있는지 여부)가 더 중요하기 때문에
간편하게 1을 적어줌
반대로,
EXISTS() 는 서브쿼리의 결과가 하나라도 참이면 TRUE 반환
'자격증고나리 > ⚽ SQLD 슈웃' 카테고리의 다른 글
[SQL] 순위를 구하는 함수 (RANK, DENSE_RANK, ROW_NUMBER) (0) | 2023.09.07 |
---|---|
[SQL] 상위 n개를 선택하는 윈도우 함수 (LIMIT,TOP,ROWNUM, FETCH FRIST) (0) | 2023.09.07 |
[SQL] 데이터베이스의 JOIN (0) | 2023.09.06 |
데이터베이스의 함수 (0) | 2023.09.05 |
무결성과 제약조건 (0) | 2023.09.04 |