▣ Oracle/오라클 Decode 함수 사용 법



 

 

이번엔 오라클 쿼리 작성 시, 유용하게 사용할 수 있는 Decode 함수에 대해 알아 보겠습니다.

Decode 함수는 특정 값을 조건에 따라 다른 값으로 변환 해주는 함수 이며,  IF THEN ELSE와 비슷하다고 볼 수 있습니다.

사용법은 아래와 같습니다.

 

→ DECODE (Value, CheckValue, True Return, False Return)

 

Value가 CheckValue와 일치하면 True Return값이 Return 되고, 불일치 하면 False Return값이 Return 됩니다.

 

예를 들면...

 

SELECT DECODE('A','A','TRUE','FALSE') FROM DUAL → 'TRUE'
SELECT DECODE('A','B','TRUE','FALSE') FROM DUAL → 'FALSE'
SELECT DECODE(1,1,'TRUE','FALSE')      FROM DUAL → 'TRUE'

 

이렇게 됩니다.

 

만약 CheckValue를 여러개로 체크 하고 싶다면,

 

DECODE (Value, CheckValue1, True Return1, CheckValue2, True Return2,....... False Return)

 

이런식으로 해주시면 됩니다.

 

이것도 예를 들어보면.. 아래와 같습니다.

 

SELECT DECODE('A','B','TRUE1','A','TRUE2','FALSE') FROM DUAL → 'TRUE2'

SELECT DECODE('A','A','TRUE1','B','TRUE2','FALSE') FROM DUAL → 'TRUE1'

SELECT DECODE('A','C','TRUE1','B','TRUE2','FALSE') FROM DUAL → 'FALSE'

 

실제로 아래와 같이 사용할 수 있습니다.

 

SELECT DECODE(U.GRADE, 'S', '*****', 'A', '****', '***')  FROM USER_GRADE U;

 

USER 등급 테이블을 Select 할 때, 만약 User 등급이 S이면 별 5개, A이면 별 4개 그 외에는 별 3개를 리턴 해주는 쿼리 입니다.

 

 

※ 주의

→ Decode 함수는 오라클에서만 지원을 하므로, 다른 DBMS 에서는 case when을 사용하시면 됩니다.


블로그 이미지

기요밍b

IT와 게임 블로그 입니다!!^^

,