본문 바로가기

DB/Oracle

오라클 DECODE

1. Syntax

 

DECODE(expr, search, result [, search, result ]...  [, default ])

 

2. Purpose

DECODE 는 expr값과 search 값을 차례로 비교한다. 
expr값과 search 값이 같으면 대응하는 result값을 반환한다.
일치하는 항목이 없으면 default 값을 반환한다.
default 값이 생략되면 NULL을 반환한다.

 

Argument는  숫자 또는 문자 유형 중 하나가 될 수 있습니다.

 

component(expr, searches, results, default 포함해서)의 최대 255까지 지원한다.

 

DECODE문 안에 DECODE문을 사용할수 있다.

 

3. Examples

가. 기본 샘플

- 쿼리

WITH TTABLE AS(
SELECT 'KIM' AS NM, 10 AS NUM FROM DUAL UNION ALL
SELECT 'LEE' AS NM, 15 AS NUM FROM DUAL UNION ALL
SELECT 'PARK' AS NM, 40 AS NUM FROM DUAL UNION ALL
SELECT 'JO' AS NM, 34 AS NUM FROM DUAL UNION ALL
SELECT 'NO' AS NM, 50 AS NUM FROM DUAL
)
SELECT  NM, NUM, DECODE(NUM, 50, 'A',
                             40, 'B',
                             30, 'C',
                             20, 'D',
                             10, 'E', 'F') AS RESULT FROM TTABLE;

 

- 결과

NM NUM RESULT
KIM 10 E
LEE 15 F
PARK 40 B
JO 34 F
NO 50 A