Pages Menu
TwitterRssFacebook
Categories Menu

Posted by on Ago 2, 2019

sql 서브 쿼리 예제

이 예제에서는 두 테이블을 직접 조인한 다음 서부 지역의 매장에 대한 판매 금액만 추가하는 대신 먼저 하위 쿼리를 사용하여 서부 지역에 있는 매장을 찾은 다음 이러한 매장의 판매 금액을 합산합니다. 하위 쿼리는 SELECT, INSERT, UPDATE 또는 DELETE 문 내부에 중첩되거나 다른 하위 쿼리 내에 중첩되는 쿼리입니다. 하위 쿼리는 식이 허용되는 모든 곳에서 사용할 수 있습니다. 이 예제에서는 SELECT 문에서 MaxUnitPrice라는 열 식으로 하위 쿼리가 사용됩니다. 다음 예제에서는 Production.Product 테이블의 ListPrice 열의 값을 두 배로 합니다. WHERE 절의 하위 쿼리는 Buying.ProductVendor 테이블을 참조하여 제품 테이블에서 업데이트된 행을 BusinessEntity 1540에서 제공하는 행으로만 제한합니다. exists 연산자는 하위 쿼리가 결과를 반환하는 경우 TRUE를 반환합니다. 그렇지 않으면 FALSE를 반환합니다. 하위 쿼리의 SELECT 쿼리는 항상 괄호로 둘러싸여 있습니다. 계산 또는 FOR BROWSE 절을 포함할 수 없으며 TOP 절도 지정된 경우에만 ORDER BY 절을 포함할 수 있습니다. 수정되지 않은 비교 연산자로 도입된 하위 쿼리를 사용하려면 데이터에 대해 충분히 잘 알고 있어야 하며 문제의 특성상 하위 쿼리가 정확히 하나의 값을 반환한다는 것을 알아야 합니다. 이 문제와 유사한 문제에 대한 하위 쿼리대신 조인을 사용하는 한 가지 차이점은 조인을 통해 결과에 두 개 이상의 테이블의 열을 표시할 수 있다는 것입니다. 예를 들어 결과에 제품 하위 범주의 이름을 포함하려면 조인 버전을 사용해야 합니다.

이 예제에서는 하위 쿼리의 결과가 외부 쿼리에서 사용됩니다. 데이터베이스 엔진은 하위 쿼리에 대해 한 번, 외부 쿼리에 대해 한 번씩 전체 쿼리를 두 번 실행합니다. 다음 쿼리는 ANY에서 수정한 비교 연산자로 도입된 하위 쿼리의 예를 제공합니다. 정가가 모든 제품 하위 범주의 최대 정가보다 크거나 같은 제품을 찾습니다. 위의 예제와 연습 문제는 하위 쿼리를 실제로 필요로 하지 않으며 WHERE 절에 여러 조건을 추가하여 해결할 수 있는 문제를 해결합니다. 다음 섹션에서는 하위 쿼리가 해당 문제를 해결하는 가장 좋은 방법또는 유일한 방법인 예제를 제공합니다.

Centro per un Futuro Sostenibile via Tacito, 84 00193 Roma tel. +39 06 90288228