web developer

[sql] DECODE 함수 본문

SQL/Oracle SQL

[sql] DECODE 함수

trueman 2022. 1. 10. 17:07
728x90
728x90

DECODE 함수 

 특정한 조건을 만족하면 X, 조건을 만족하지 않으면 Y 출력



* DECODE 함수는 프로그래밍에서의 if ~ then, if else 와 비슷한 기능을 수행한다.

 

* DECODE 함수와 CASE 함수의 간략한 차이점 :

DECODE : A=B이면 X, A≠B이면 Y를 출력 (A와 B가 같은지에 대한 조건)

CASE : DECODE와 달리, A와 B 사이에 부등호 관계(크거나 작은 조건)를 처리할 때 주로 사용

 

 

간단한 사용방법은 아래와 같다.

예) DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3, ..., ...)


(1) DECODE(A, B, X, Y)

select decode(컬럼이름A, 비교대상값B, 출력값X, 출력값Y), ... from 테이블이름;
A = B 이면 X를 출력,
A ≠ B 이면 Y를 출력

(2) DECODE(A, B, X, C, Y, Z)

select decode(컬럼이름A, 비교대상값B, 출력값X, 
                        비교대상값C, 출력값Y, 출력값Z), ...
from 테이블이름;
A = B이면 X 출력,
A = C이면 Y 출력,
A ≠ B 이고 A ≠ C이면 Z 출력

(3) DECODE(A1, B, DECODE(A2, C, X, Y), Z)

select decode(컬럼이름A1, 비교대상값B, 
              decode(컬럼이름A2, 비교대상값B, 출력값X, 출력값Y),
              출력값Z), ...
from 테이블이름;
A1=B이면서 A2=C이면 X 출력,
A1=B이면서 A2≠C이면 Y를 출력,
A1≠B이면 Z 출력
(DECODE 내부의 DECODE 중첩)

* 이때 비교하는 값인 B, C와 출력하는 값인 X,Y,Z 자리에 null도 사용할 수 있습니다.

 

출처 : https://gent.tistory.com/227

출처 : https://m.blog.naver.com/regenesis90/222182177281

728x90
728x90

'SQL > Oracle SQL' 카테고리의 다른 글

[sql] JOIN 정리  (0) 2022.01.12
[sql] RANK, DENSE_RANK, ROW_NUMBER 함수  (0) 2022.01.10
[sql] INSTR 함수  (0) 2022.01.07
[sql] SUBSTR 함수  (0) 2022.01.07
[sql] Case When Then Else End  (0) 2021.12.28