달력

11

« 2024/11 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
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
                          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..)  
      column이 값1이보다 크고 AND column이 값2이보다 크고 AND column이 값3이보다 크냐?   
                
<ALL   
ex) ...where column <ALL(값1,값2,값3..)  
    column이 값1이보다 작고 AND column이 값2이보다 작고 AND column이 값3이보다 작냐?    
 
>ANY  
ex) ...where column >ANY(값1,값2,값3..)   
    column이 값1이보다 크거나 OR column이 값2이보다 크거나 OR column이 값3이보다 크냐?
 
<ANY  
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
:
Posted by sfeg