。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

업무

[ORACLE 함수] EXISTS & IN

quarrrter 2024. 1. 19. 10:34

EXISTS()

SELECT *
	FROM EXAMPLE E1
   WHERE EXISTS (SELECT * FROM EXAMPLE2 E2 WHERE E1.NAME=E2.NAME);

 

  • 논리연산자 중의 하나로 후행 조건절로 서브 쿼리 형태만 올 수 있음
  • 서브 쿼리의 결과가 "한 건이라도 존재하면" TRUE 없으면 FALSE를 리턴
  • NULL에 대해 TRUE 리턴
  • 처리순서: 메인쿼리 => 서브쿼리
  • 서브쿼리의 결과가 존재하는지 여부만을 확인

 

 

IN()

SELECT *
	FROM EXAMPLE E1
   WHERE E1.NAME IN (SELECT * FROM EXAMPLE2 E2 WHERE E1.NAME=E2.NAME);

 

  • ()안에 특정 값이나 서브쿼리가 올 수 있음
  • 처리순서: 서브쿼리 => 메인쿼리
  • NULL에 대해 FALSE 리턴 
  • 서브쿼리의 결과에 포함된 값과 메인 쿼리의 조건에 일치하는 값을 선택

 

 

"EXISTS"가 서브쿼리의 결과를 일일히 비교하지 않고 빠르게 존재 여부만을 확인할 수 있어, 일반적으로 성능 면에서 더 효율적일 수 있습니다.

'업무' 카테고리의 다른 글

[MyBatis] 설정파일  (0) 2024.01.22
[ORACLE 함수] SUBSTR  (0) 2024.01.19
[ORACLE 함수] SYSDATE  (1) 2024.01.18
[ORACLE 함수] DECODE / CASE  (0) 2024.01.18
[ORACLE 함수] MERGE INTO  (2) 2024.01.18