[Oracle] DECODE 안에 SELECT 사용법 (서브쿼리)

오라클의 DECODE 함수 안에 SELECT 문을 사용하기 위해서는 스칼라 서브쿼리를 사용하면 된다. SELECT 문을 작성할 때는 쿼리문의 시작과 끝을 괄호로 감싸서 작성해야 한다.

 

SELECT a.empno
     , a.ename
     , a.deptno
     , DECODE(a.deptno,'10','ACCOUNTING','20',(SELECT aa.dname
                                                 FROM dept aa
                                                WHERE aa.deptno = a.deptno)) dname 
  FROM emp a
 WHERE job = 'MANAGER'
 ORDER BY a.deptno

 

 

위의 예제는 deptno 값이 "10"인  경우 "ACCOUNTING"를 반환하고, "20"인 경우 서브쿼리(SELECT 문)의 결과를 반환한다. "30"인 경우는 조건에 없기 때문에 NULL을 반환한다.

 

DECODE 함수 내부에 SELECT 문을 사용할 때는 스칼라 서브쿼리로 작성하면 된다. 스칼라 서브쿼리는 하나의 행, 하나의 열을 반환하는 쿼리문이다.

예제쿼리(테이블포함).txt
0.00MB

 

[Oracle] 오라클 DECODE 함수 사용법

DECODE 함수는 오라클 쿼리에서 가장 많이 사용하는 함수 중 하나이다. 표준 SQL 함수가 아니라서 사용을 꺼려하기도 하지만 잘 사용하면 아주 편하기 때문에 유용하다. 최근에는 CASE WHEN 구문 사용

gent.tistory.com

 

[Oracle] 오라클 서브쿼리(SubQuery) 사용법

오라클에서 쿼리문을 작성하다 보면 서브 쿼리(subquery)를 자주 접하게 된다. 서브 쿼리를 처음 접하면 아주 복잡하게 느껴지는데, 기능을 조금만 익히면 쿼리문을 작성할 때 아주 유용하게 사용

gent.tistory.com

 

댓글

Designed by JB FACTORY