관리 메뉴

Life goes slowly...

[Oracle] 오라클 조건 함수(DECODE) 본문

프로그래밍/Oracle

[Oracle] 오라클 조건 함수(DECODE)

빨강소 2020. 8. 26. 16:46
728x90
반응형

 

DECODE 함수

Oracle SQL 문장에서 Data를 조회시 조건에 해당하는 값을 추출하기 위해 자주 사용하는 함수로 DECODE 함수가 있습니다. 조회 조건에 따라 데이터를 다른 값이나 컬럼 값으로 추출이 가능하며 DECODE 함수 안에 DECODE 함수를 중첩으로 사용이 가능합니다. 비슷한 조회 SQL 문으로는 CASE, IF 문이 있습니다.

 

DECODE(컬럼,조건,TRUE 결과값,FALSE 결과값)

 

조회 컬럼 Data가 조건에 True 일 경우에 True 결과값을 반환하고 False 일 경우에는 False 결과값을 반환하게 됩니다.

하지만 DECODE 함수의 조건이 많아지게 되면 Query의 가독성이 떨어지기 때문에 추후에 유지 보수에 어려움이 있어 이점 유의하고 사용하는 게 좋겠습니다.

 

--TYPE 1이면 네이버 2면 카카오
SELECT 
DECODE(TYPE,1,'네이버','카카오') AS TYPE
FROM
TABLE_TEST

--NAME 1이면 김철수 3이면 이영희 2이면 홍길동
SELECT 
	A.NAME
FROM (
      SELECT '김철수' as NAME
      FROM DUAL
      UNION ALL
      SELECT '이영희' as NAME
      FROM DUAL
      UNION ALL
      SELECT '홍길동' as NAME
      FROM DUAL
	  ) A
ORDER BY DECODE(
	A.NAME, '김철수', 1, '이영희', 3, '홍길동', 2
);

 

728x90
반응형
Comments