2018. 1. 18. 21:24
oracle 서브쿼리 C. Oracle2018. 1. 18. 21:24
- SubQuery
=> 1. 하나의 select문안에 ( ) 를 이용하여 또 다른 select문이 존재하는것
2. single row subquery앞에는 single row operator( =,>....)가 와야한다.
3. multiple row subquery앞에는 multiple row operator( IN... )가 와야한다.
4. subquery내에서는 정렬할 필요가 없다.( order by의 의미가 없다. )
단, 8i R2부터 from절에 사용되는 subquery의 경우에는 사용가능하다.
ps. main Query - SubQuery => SubQuery먼저 만들고 main Query를 만들면 수월하다.
ex) select ename,sal from emp
ex) select ename,sal from emp
where sal >= ( select sal from emp where ename='JONES');
- subquery가 반환하는 값이 몇개냐에 따라 아래와같이 나눌수 있다.
# single row subquery -> 반환값이 하나
# multiple row subquery -> 반환하는 값이 2개이상
# multiple column subquery -> 반환하는 컬럼이 2개이상
SUBQUERY 연산자 (True /False)
>ALL
ex) ...where column >ALL(값1,값2,값3..)
ex) ...where column >ALL(값1,값2,값3..)
column이 값1이보다 크고 AND column이 값2이보다 크고 AND column이 값3이보다 크냐?
<ALL
ex) ...where column <ALL(값1,값2,값3..)
ex) ...where column <ALL(값1,값2,값3..)
column이 값1이보다 작고 AND column이 값2이보다 작고 AND column이 값3이보다 작냐?
>ANY
ex) ...where column >ANY(값1,값2,값3..)
ex) ...where column >ANY(값1,값2,값3..)
column이 값1이보다 크거나 OR column이 값2이보다 크거나 OR column이 값3이보다 크냐?
<ANY
ex) ...where column <ANY(값1,값2,값3..)
ex) ...where column <ANY(값1,값2,값3..)
column이 값1이보다 작거나 OR column이 값2이보다 작거나 OR column이 값3이보다 작냐?
'C. Oracle' 카테고리의 다른 글
oracle DML (0) | 2018.01.18 |
---|---|
oracle 형변환 (0) | 2018.01.18 |
oracle 네트워크설정 tnsname.ora (0) | 2017.07.02 |
oracle 설치후 접속방법 (0) | 2017.07.02 |
oracle 구조 (0) | 2017.07.02 |