SQL 하위 쿼리

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

하위 쿼리에 SELECT 선택 안에 중첩 SELECT 문... 으로 삽입... INTO, 삭제 또는 UPDATE 문 또는 다른 하위 쿼리 안에 합니다.

구문

하위 쿼리를 만들려면 세 가지 형태의 구문 사용할 수 있습니다.

비교 [모든 | 모든 | 일부] (이지만 sqlstatement)

[하지] (이지만 sqlstatement)에서

[하지] EXISTS (이지만 sqlstatement)

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

구성 요소

설명

비교

식 하 고 비교 연산자 하위 쿼리 결과 식입니다.

expression

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

sqlstatement

다음과 같은 동일한 형식과 규칙 기타 SELECT 문 SELECT 문입니다. 괄호로 묶어야 합니다.


주의

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

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

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

모든 조건부를 사용 하 여 하위 쿼리에서 검색 된 모든 레코드와의 비교 조건을 만족 하는 주 쿼리에서 레코드에만를 검색 합니다. 이전 예제에서 모두를 변경 하는 경우 쿼리 단가 25% 이상 할인 판매 된 모든 제품의 것 보다 큰 제품만 반환 됩니다. 훨씬 더 제한적입니다.

IN 조건자를 사용 하 여 하위 쿼리에서 일부 레코드는 동일한 값이 있는 주 쿼리에서 레코드만 검색 합니다. 다음 예에서는 25% 이상 할인 된 모든 제품을 반환합니다.

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

반대로 주 쿼리에서 하위 쿼리에서 레코드가 없으면 동일한 값이 있는 레코드만 검색 하려면 NOT IN을 사용할 수 있습니다.

EXISTS 조건부 사용 하 여 (와 선택적으로 NOT 예약어) true/false 비교 하위 쿼리에서 반환 된 레코드가 올바른지 확인 합니다.

하위 쿼리 외부의 FROM 절에 나열 된 테이블을 참조할 하위 쿼리에서 테이블 이름 별칭을 사용할 수 있습니다. 다음 예제에서는 동일한 직함 발생 한 모든 직원의 평균 급여 보다 크거나 같은 급여가 직원의 이름을 반환 합니다. Employees 테이블 별칭 "t 1" 지정 됩니다.

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 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×