DECODE

프로그래밍언어의 스위치 문과 같은 기능을 하는 SQL 함수이다.

  • 형식

DECODE (비교값 , CASE1 , 결과 1 , CASE2 , 결과 2 , CASE3 , 결과 3..... , 기본값)

비교값이 CASE1과 같으면 결과 1을 리턴하고,

CASE2와 같으면 결과 2를 리턴한고,

CASE3과 같으면 결과 3을 리턴하고..........

모든 CASE 값들과 일치하는 것이 없으면 기본값을 리턴한다.

만약 기본값이 생략된 상태에서 일치하는 값이 없으면 NULL 이 리턴된다.

  • 주의사항

비교값 과 CASE 값의 데이터 타입이 같아야 한다.

다를 경우에는 자동형변환이 되면 문제없지만 자동형변환이 불가능할 경우 오류를 발생한다.

※ 오라클이 알아서 비교값을 CASE 값과 같은 타입으로 변환시키려고 시도한다.


※ DECODE함수

- 특정 컬럼의 값을 기준으로 마치 IF문을 사용하는 것과 같은 효과를 내는 함수

- 해당 컬럼의 값이 'A'이면 지정한 특정한 값을 출력하고, 'B'이면 또 다른 값을 출력

- 기본값을 정해서 조건을 만족하지 않는 경우의 출력 제어 가능

- 구문

DECODE({column | expression}, search1, result1 [,search2,result2] ...

[,default] )

- 사용 예

① job값에 따른 새로운 직업명 출력

② deptno에 따른 인상급여 출력

[출처] 오라클 DECODE|작성자 하늘아이

'먹고살기 > Oracle' 카테고리의 다른 글

[Oracle] ROWNUM 사용 시 주의  (0) 2011.04.25
오라클 데이터 타입  (0) 2011.04.22
인덱스의 정의  (0) 2011.04.22
[ORACLE] 데이터베이스 시작의 3단계 설명  (0) 2011.04.22
오라클 변환함수 ( TO_CHAR )  (0) 2011.04.22