SQL 하위 쿼리

참고:  사용자 언어로 가능한 한 빨리 가장 최신의 도움말 콘텐츠를 제공하고자 합니다. 이 페이지는 자동화를 통해 번역되었으며 문법 오류나 부정확한 설명을 포함할 수 있습니다. 이 목적은 콘텐츠가 사용자에게 유용하다는 것입니다. 이 페이지 하단의 정보가 도움이 되었다면 알려주세요. 쉽게 참조할 수 있는 영어 문서 가 여기 있습니다.

하위 쿼리는 SELECT, SELECT...INTO, INSERT...INTO, DELETE 또는 UPDATE 문 내부에 중첩되거나 다른 하위 쿼리 내부에 중첩되는 SELECT 문입니다.

구문

다음과 같은 세 가지 형태의 구문을 사용하여 하위 쿼리를 만들 수 있습니다.

comparison [ANY | ALL | SOME] (sqlstatement)

expression [NOT] IN (sqlstatement)

[NOT] EXISTS (sqlstatement)

하위 쿼리는 다음과 같이 구성됩니다.

구성 요소

설명

comparison

식 및 하위 쿼리 결과와 식을 비교하는 비교 연산자입니다.

expression

하위 쿼리의 결과 집합을 검색하는 식입니다.

sqlstatement

다른 모든 SELECT 문과 동일한 형식 및 규칙을 따르는 SELECT 문입니다. 괄호 안에 넣어야 합니다.


주의

SELECT 문의 필드 목록 또는 WHERE나 HAVING 절에서 식 대신 하위 쿼리를 사용할 수 있습니다. 하위 쿼리에서는 SELECT 문을 사용하여 WHERE 또는 HAVING 절 식에서 계산할 하나 이상의 특정 값 집합을 제공합니다.

하위 쿼리에서 검색된 레코드와의 비교 조건을 만족하는 레코드를 주 쿼리에서 검색하려면 동의어인 ANY 또는 SOME 조건자를 사용합니다. 다음은 25% 이상 할인되어 판매된 제품보다 단가가 높은 모든 제품을 반환하는 예제입니다.

SELECT * FROM Products WHERE UnitPrice > ANY (SELECT UnitPrice FROM OrderDetails WHERE Discount >= .25);

하위 쿼리에서 검색된 모든 레코드와의 비교 조건을 만족하는 레코드만 주 쿼리에서 검색하려면 ALL 조건자를 사용합니다. 위의 예제에서 ANY를 ALL로 바꾸어 쿼리를 실행하면 25% 이상 할인되어 판매된 모든 제품보다 단가가 높은 제품만 반환됩니다. 그러므로 ALL을 사용하는 것이 훨씬 더 제한적입니다.

하위 쿼리에 값이 같은 레코드가 있는 레코드만 주 쿼리에서 검색하려면 IN 조건자를 사용합니다. 다음은 25% 이상 할인된 모든 제품을 반환하는 예제입니다.

SELECT * FROM Products WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Discount >= .25);

반대로 하위 쿼리에 값이 같은 레코드가 없는 레코드만 주 쿼리에서 검색하려면 NOT IN을 사용하면 됩니다.

하위 쿼리가 레코드를 반환하는지 여부를 확인하려면 참/거짓 비교에 EXISTS 조건자와 선택 사항인 NOT 예약어를 사용합니다.

하위 쿼리에 테이블 이름 별칭(SQL)을 사용하여 하위 쿼리 외부의 FROM 절에 나열된 테이블을 참조할 수 있습니다. 다음은 직급이 같은 모든 직원의 평균 급여 이상을 받는 직원의 이름을 반환하는 예제입니다. Employees 테이블에는 "T1"이라는 별칭이 지정됩니다.

SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title;

위의 예제에서 AS 예약어는 선택 사항입니다.

크로스탭 쿼리에 허용 되는 몇 가지 하위 쿼리-조건자 (WHERE 절에)로 구체적으로 합니다. 하위 쿼리 (SELECT 목록에 나와 있는) 결과로 크로스탭 쿼리의 허용 되지 않습니다.



Office 기술 확장
교육 살펴보기
새로운 기능 우선 가져오기
Office Insider 참여

이 정보가 유용한가요?

의견 주셔서 감사합니다!

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×