sql 서브쿼리 예제

괄호로 둘러싸인 SELECT 문은 하위 쿼리입니다. 이전 예제와 마찬가지로 이 쿼리는 한 번 실행되고 숫자 값을 반환한 다음 각 LineTotal 값에서 뺍니다. 이렇게 하려면 SELECT 문에 상관 된 하위 쿼리를 포함 하 여 SalesOrderDetail 라인의 수를 반환 합니다. 외부 쿼리의 SalesOrderID를 필터링하여 올바른 SalesOrderDetail 항목을 계산하고 있는지 확인합니다. 하위 쿼리 SELECT 문은 SELECT 문과 거의 유사하며 일반 또는 외부 쿼리를 시작하는 데 사용됩니다. 다음은 하위 쿼리의 구문입니다: 지금까지 본 하위 쿼리는 독립적으로 실행할 수 있습니다. corralted 하위 쿼리라고 독립적으로 실행할 수 없는 또 다른 종류의 하위 쿼리가 있습니다. 다음 자습서에서 상관 하위 쿼리를 다룹니다. =ANY 연산자는 IN과 동일합니다. 예를 들어 Adventure Works 사이클이 만드는 모든 휠 제품의 이름을 찾으려면 IN 또는 =ANY를 사용할 수 있습니다. 다음 예제에서는 Production.Product 테이블의 ListPrice 열의 값을 두 배로 합니다.

WHERE 절의 하위 쿼리는 Buying.ProductVendor 테이블을 참조하여 제품 테이블에서 업데이트된 행을 BusinessEntity 1540에서 제공하는 행으로만 제한합니다. 하위 쿼리를 사용하여 하위 쿼리가 작동하는 방식을 이해하는 몇 가지 예를 살펴보겠습니다. 수정되지 않은 비교 연산자로 도입된 하위 쿼리를 사용하려면 데이터에 대해 충분히 잘 알고 있어야 하며 문제의 특성상 하위 쿼리가 정확히 하나의 값을 반환한다는 것을 알아야 합니다. 설명 : 첫 번째 하위 쿼리는 « 섹션=A`가 `섹션이 `A`인 학생 테이블에서 ROLL_NO를 반환하는 학생으로부터 ROLL_NO 선택 »을 실행합니다. 그런 다음 외부 쿼리를 실행 하 고 ROLL_NO 내부 하위 쿼리에서 반환 되는 학생의 데이터베이스 테이블에서 이름, 위치, PHONE_NUMBER를 반환 합니다. 출력: SELECT, INSERT, DELETE 또는 UPDATE 문에서 하위 쿼리를 사용하여 다음 작업을 수행할 수 있습니다. 이 명령문의 이전 하위 쿼리는 외부 쿼리와 독립적으로 평가할 수 없습니다. Employee.BusinessEntityID에 대한 값이 필요하지만 SQL Server에서 Employee의 다른 행을 검사할 때 이 값이 변경됩니다. SQL Server는 각 행의 값을 내부 쿼리로 대체하여 Employee 테이블의 각 행을 결과에 포함시키는 방법을 고려합니다. 예를 들어 SQL Server가 Syed Abbas의 행을 먼저 검사하는 경우 변수 Employee.BusinessEntityID는 SQL Server가 내부 쿼리로 대체하는 값 285를 취합니다. 하나의 쿼리를 다른 쿼리 안에 배치하여 위의 두 쿼리를 결합할 수 있습니다.

하위 쿼리(`내부 쿼리`라고도 함)는 괄호 안의 쿼리입니다.