본문 바로가기
Database

SUBQUERY 종류 in Oracle

by Lcoding 2023. 11. 8.
반응형

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)

반응형

'Database' 카테고리의 다른 글

TO_NUMBER() 안먹힐때 in Oracle  (0) 2023.11.08
CONNECT BY, PARTITION BY, GROUP BY in Oracl  (0) 2023.11.08
CLOB데이터 글자 수 조회하기 in Oracle  (0) 2023.11.08
Commit, Rollback, Savepoint  (0) 2023.11.08
BOOLEAN의 표현 in Oracle  (0) 2023.11.08

loading