송민준의 개발노트

DECODE, CASE문 본문

DB/쿼리

DECODE, CASE문

송민준 2020. 7. 25. 19:14

1. DECODE

DECODE는 IF문과 같다고 보면된다. 특정 조건이 참일 때 값과 거짓일 때 값을 적용한다.

DECODE(CUSTNO, 11031, 'YES', 'NO')

위와 같은 예시에서는 custno의 값이 11031일 경우 YES 를 반환하고 아닐 경우는 NO를 반환한다.

 

2개도 가능하다.

DECODE(CUSTNO, 11031, 'YES', 10001, 'OK', 'NO')

11031일 경우에는  YES, 10001 일 경우에는 OK 그 외에는 NO를 반환한다.

 

응용 해서 아래와 같이 이중으로도 가능하다.

DECODE( DECODE( ~ ) )

 

2. CASE

CASE문은 IF ELSE와 같은 프로그래밍 언어처럼 사용이 가능하다.

기본적인 구조는 아래와 같다.

CASE [ expression ]
  WHEN condition1 then result1
  WHEN condition2 then result2
  else resultEtc
END

CASE CUSTNO 
  WHEN 11031 then 'YES'
  WHEN 10001 then 'OK'
  else 'NO'
END

해석을 하자면 expression의 값이 condition과 일치한다면 result1을 반환, condition2와 일치한다면 result2를 반환 그 외에는 resultEtc를 반환한다.

 

예시는 위에 DECODE 예시와 같은 결과를 반환하니 참고...

'DB > 쿼리' 카테고리의 다른 글

(Oracle)윈도우 함수 사용법  (0) 2020.08.03
그룹 함수  (0) 2020.08.03
(Oracle)서브쿼리(Subquery)란 무엇인가??  (0) 2020.07.27
내장형 함수  (0) 2020.07.25
Oracle 날짜 / 시간 포맷 (format) 함수  (0) 2020.07.07