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 |