오라클 DB(sql)_기초_13 (다중행 서브쿼리, any, all)

데이터베이스 2021. 5. 1. 19:51

<다중행 서브쿼리>

  • 10, 20, 30, 40, 50, 60 데이터가 있다고 가정하고,
  • 서브쿼리의 결과가 30 40 반환하는 서브쿼리를 작성한다고 할때,

: In (30, 40) >> 30,40 반환
: > any 최소값보다 큰 값을 찾아줌. >> 30보다 큰 값을 찾아라 >> 40, 50, 60  (or연산으로생각)
: < any 최대값보다 작은값을 찾아줌 >> 40보다 작은값을 찾아라 >> 10, 20, 30 (and연산으로 생각)

: > all
최대값보다 값을 찾아줌 >> 40보다 >> 50, 60
: < all
최소값보다 작은 값을 찾아줌 >> 30보다 작은 >> 10, 20

 

위와같은 경우 In 값을 찾는것(값과 값을 비교하는 )이기때문에  null값을 가지는 항목은 찾아낼 없음.서브쿼리의 내용이 말하는것이 king 제외한 106명의 사원이고 Not in 106명의 사원을 제외한King 찾아준다고 생각할 있지만, king 가지는 값은 null값이기 때문에 값을 아무것도 찾을수 없는것.

 

 null 포함한 복수의 값이 도출되면 연산자는 연산이 불가능해짐.

 

admin