SQL > SQL인스트럭션 > EXISTS

EXISTS 은 내부 쿼리가 어떤 행을 반환하는지 테스트하기 위해 서브쿼리 에서 사용되는 부울 연산자입니다. 그렇다면 외부 쿼리가 진행됩니다. 그렇지 않으면 외부 쿼리가 실행되지 않으며 전체 SQL 문이 아무것도 반환하지 않습니다.

구문

EXISTS의 구문은 다음과 같습니다:

SELECT "필드명1"
FROM "도표명1"
WHERE EXISTS
(SELECT *
FROM "도표명2"
WHERE "조건");

내부 쿼리에서 * 대신 하나 이상의 열을 선택할 수 있다는 점을 주의하세요. 효과는 동일합니다.

예제

이 예제에서는 다음과 같은 테이블을 사용합니다.

Store_Information 도표
 Store_Name  Sales  Txn_Date 
 Los Angeles 1500  Jan-05-1999 
 San Diego 250  Jan-07-1999 
 Los Angeles 300  Jan-08-1999 
 Boston 700  Jan-08-1999 

Geography 도표
 Region_Name  Store_Name 
 East  Boston 
 East  New York 
 West  Los Angeles 
 West  San Diego 

다음 SQL 쿼리는 다음과 같습니다:

SELECT SUM(Sales) FROM Store_Information
WHERE EXISTS
(SELECT * FROM Geography
WHERE Region_Name = 'West');

아래와 같은 결과를 생성합니다:

SUM(Sales)
2750

처음에는 혼동스러울 수 있습니다. 왜냐하면 하위 쿼리에는 [region_name = 'West'] 조건이 포함되어 있지만, 쿼리는 모든 지역의 상점 매출을 합산합니다. 더 자세히 살펴보면 하위 쿼리가 0보다 많은 행을 반환하므로 EXISTS 조건이 참이 되며 "SELECT SUM(Sales) FROM Store_Information" 쿼리에서 반환된 행이 최종 결과가 됩니다.

SQL UNION >>

이페이지는 2023년10월16일에 마지막으로 업데이트되었습니다



Copyright © 2024   1keydata.com   All Rights Reserved