개발자 항해

Scalar Subquery 본문

DB/Oracle

Scalar Subquery

리치Y 2022. 9. 8. 15:35

 

 scalar subquery 는 한행에서 하나의 열값을 반환한다.

 

 

1. case의 scalar subquery

 

1번 서브 쿼리를 실행하고 2번 메인쿼리를 실행( 1번 서브 쿼리만 따로 실행해도 실행된다.)

 

 

 

2.  Correlated Subquery (상호관련 서브쿼리)

 

실행 순서

 

 

 

 

예시 1) 자신의 부서의 평균급여보다 많은 급여를 받는 사원출력

 

아래 그림과 같이 반복되면서 실행된다. 

 

 

 

 

상호 관련 서브쿼리 구문을 사용하지 않고도 작성할수 있다. (Inline View 사용)

 

 

성능은 상호관련 서브쿼리보다 더 좋다.

그러면 상호 관련 서브쿼리는 왜쓰느냐?

그 서브쿼리를 쓸수밖에 없는 상황이 있다. 

 

 

 

 예시2) 각 부서에서 급여가 가장 높은 사원의 정보 표시

 

상호관련 서브쿼리 사용

 

상호 관련 서브쿼리 사용 안하고 일반적은 서브쿼리로 작성

 

 

 

 

예시3) 입사 이래로 2번이상 부서를 바꾼 사원 출력

 

 

 

 

 

 

 

'DB > Oracle' 카테고리의 다른 글

with 절  (0) 2022.09.14
EXISTS 및 NOT EXISTS 연산자 사용  (0) 2022.09.13
집합 연산자  (0) 2022.09.08
순위 함수  (0) 2022.09.02
Top-N 관련 예제 문제  (0) 2022.09.02