2011-08-05 13:10:11
SQL 4 Oracle 오라클용 sql 실무
▒ Sub Query
### 서브쿼리란 메인 Query안의 다른 Query
### 스칼라서브쿼리 : SELECT 절에 오는 Sub Query
### 인라인 뷰 : FROM 절 뒤에 오는 Sub Query(가상의 테이블을 만드는 Sub Query)
### 서브쿼리 : WHERE 절 뒤에 오는 Query
### 상관쿼리 : 메인 Query 서브Query간에 서로 참조작용하는 Query
▒ 상관쿼리
select a.고객ID ,
(select a1.고객ID
from 목표_Table a1
where a1.고객상태='활동중'
and a1.고객ID=a.고객ID
) B ,
(select a2.고객ID
from 목표_Table a2
where a2.고객상태='활동중'
and a2.고객ID in (select a21.고객ID
from 목표_Table a21
where a21.고객상태='활동중'
and a21.고객ID=a.고객ID)
) C ,
(select a3.고객ID
from 목표_Table a3
where a3.고객상태='활동중'
and a3.고객ID in (select a31.고객ID
from 목표_Table a31
where a31.고객상태='활동중'
and a31.고객ID in (select a32.고객ID
from 목표_Table a32
where a32.고객상태='활동중'
and a32.고객ID=a.고객ID)
)
) D
from 목표_Table a
where a.고객상태='활동중'
▒ 상관쿼리2
select a.고객ID,
(select a1.고객ID
from 목표_Table a1
where a1.고객상태='활동중'
and a1.고객ID=a.고객ID) B
,
(select (select a2.고객ID
from 목표_Table a2
where a2.고객상태='활동중'
and a2.고객ID = a1.고객ID)
from 목표_Table a1
where a1.고객상태='활동중'
and a1.고객ID=a.고객ID) C
,
(select (select (select a3.고객ID
from 목표_Table a3
where a3.고객상태='활동중'
and a3.고객ID = a2.고객ID)
from 목표_Table a2
where a2.고객상태='활동중'
and a2.고객ID=a1.고객ID)
from 목표_Table a1
where a1.고객상태='활동중'
and a1.고객ID=a.고객ID) D
from 목표_Table a
where a.고객상태='활동중'
▒ 인라인 뷰
select a.고객ID, B.고객ID, C.고객ID, D.고객ID
from 목표_Table a,
(select a1.고객ID
from 목표_Table a1
where a1.고객상태='활동중') B
,
(select (select a2.고객ID
from 목표_Table a2
where a2.고객상태='활동중'
and a2.고객ID = a1.고객ID)
from 목표_Table a1
where a1.고객상태='활동중') C
,
(select (select (select a3.고객ID
from 목표_Table a3
where a3.고객상태='활동중'
and a3.고객ID = a2.고객ID)
from 목표_Table a2
where a2.고객상태='활동중'
and a2.고객ID = a1.고객ID)
from 목표_Table a1
where a1.고객상태='확동중') D
where a.고객상태='활동중'
and a.고객ID=b.고객ID
and a.고객ID=c.고객ID
and a.고객ID=d.고객ID

'SQL4Oracle' 카테고리의 다른 글
| Informix와 Oracle 달랐던 점 한가지 (0) | 2023.03.10 |
|---|---|
| 주민등록번호 성별 구분 (0) | 2023.03.10 |
| 고정길이 전문 데이터 만들기 RPAD (0) | 2023.03.10 |
| RANK 지역순위 및 전체순위 추출, 전체 순위비유별 상대등급 추출 (0) | 2023.03.10 |
| RANK 순위 추출 (0) | 2023.03.10 |