[Oracle] DECODE 안에 SELECT 사용법 (서브쿼리)
- 데이터베이스/오라클
- 2024. 2. 12.
오라클의 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 문을 사용할 때는 스칼라 서브쿼리로 작성하면 된다. 스칼라 서브쿼리는 하나의 행, 하나의 열을 반환하는 쿼리문이다.