Database

SUBQUERY 종류 in Oracle

Lcoding 2023. 11. 8. 15:01
반응형

1. scalar subquery( 스칼라 서브 쿼리)

스칼라 서브쿼리는 SELECT 절에 들어가며 단일 칼럼, 단일 행을 반환해야 합니다.

쿼리를 잘못 작성하여 2개 이상의 행이 반환되면 "ORA-01427 : 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다" 라는 오류가 발생하며 사용법 예시는 다음과 같습니다.

Select a.empNo,

           a.name,

           a.deptNo,

           (select b.deptName from dept b where b.deptNo = a.deptNo) as deptName

from emp a 

where a.empNo = 10

 

 

2. inline view( 인라인 뷰 )

인라인 뷰는 FROM 절에 들어가는 서브쿼리이며 사용적인 측면에서 View 테이블과 동일합니다.

Select a.empNo,

           a.name,

           a.deptNo,

           b. deptName

from emp a, (select b.deptName from dept b where b.deptNo = a.deptNo) b

where a.empNo = 10

 

 

3. Nested Subqueries ( 중첩 서브쿼리)

중첩 서브쿼리는 Where절에 들어가는 서브쿼리이며, 단일행과 복수행 모두 리턴이 가능합니다.

 

Select a.empNo,

           a.name,

           a.deptNo

from emp a

where a.deptNo in ( select deptNo from dept)

반응형