DECODE 함수 사용법
▶ 사용방법
DECODE(칼럼명, 조건, 결과, 그 외)
▶ 예시
DECODE(ADDRESS, 'GD', '강동', 'GS', '강서', 'GN', '강남', 'GB', '강북', '기타')
위의 코드를 해석해보면 해당 테이블에 ADDRESS라는 칼럼의 값이 'GD'면 '강동'이라는 값을 리턴하고, 'GS'면 '강서'라는 값을, 'GN'이면 '강남'이라는 값을, 'GB'면 '강북'이라는 값을 리턴하고 앞의 조건에 해당하는 값이 없다면 '기타'라는 값을 리턴한다는 뜻이다.
▶ 예시 쿼리
아래의 쿼리는 TMP라는 테이블에 ADDRESS라는 칼럼이 있다는 가정하에 작성되었다.
SELECT ADDRESS, DECODE(ADDRESS, 'GD', '강동', 'GS', '강서', 'GN', '강남', 'GB', '강북', '기타') RESULT FROM TMP;
▶ 예시 쿼리 결괏값
ADDRESS | RESULT |
GD | 강동 |
GS | 강서 |
GN | 강남 |
GB | 강북 |
GW | 기타 |
DECODE 대신 CASE WHEN 사용하기
▶ 사용방법
CASE 칼럼명 WHEN 조건 THEN 결과 ELSE 그 외 결과 END
▶ 예시
CASE ADDRESS WHEN 'GD' THEN '강동'
WHEN 'GS' THEN '강서'
WHEN 'GN' THEN '강남'
WHEN 'GB' THEN '강북'
ELSE '기타'
END
위의 코드는 DECODE와 같은 기능을 한다.
해당 테이블에 ADDRESS라는 칼럼의 값이 'GD'면 '강동'이라는 값을 리턴하고, 'GS'면 '강서'라는 값을, 'GN'이면 '강남'이라는 값을, 'GB'면 '강북'이라는 값을 리턴하고 앞의 조건에 해당하는 값이 없다면 '기타'라는 값을 리턴한다는 뜻이다.
▶ 예시 쿼리
아래의 쿼리는 TMP라는 테이블에 ADDRESS라는 칼럼이 있다는 가정하에 작성되었다.
SELECT ADDRESS, CASE WHEN ADDRESS = 'GD' THEN '강동' WHEN ADDRESS = 'GS' THEN '강서' WHEN ADDRESS = 'GN' THEN '강남' WHEN ADDRESS = 'GB' THEN '강북' ELSE '기타' END AS RESULT FROM TMP;
▶ 예시 쿼리 결괏값
ADDRESS | RESULT |
GD | 강동 |
GS | 강서 |
GN | 강남 |
GB | 강북 |
GW | 기타 |
CASE WHEN과 DECODE 함께 사용하기
▶ 예시 쿼리
아래의 쿼리는 TMP라는 테이블에 ADDRESS1, ADDRESS2라는 칼럼이 있다는 가정하에 작성되었다.
SELECT ADDRESS1, ADDRESS2, CASE WHEN ADDRESS1 = 'GD' THEN DECODE(ADDRESS2, 'AS', '암사', 'CH', '천호', '기타') WHEN ADDRESS1 = 'GN' THEN DECODE(ADDRESS2, 'NH', '논현', '기타') ELSE '기타' END AS RESULT FROM TMP;
▶ 예시 쿼리 결괏값
ADDRESS1 | ADDRESS2 | RESULT |
GD | AS | 암사 |
GD | CH | 천호 |
GD | DC | 기타 |
GN | NH | 논현 |
GS | SS | 기타 |
'개발 > 데이터베이스' 카테고리의 다른 글
[ORACLE] TO_CHAR, TO_DATE, TO_NUMBER (0) | 2021.10.14 |
---|---|
[ORACLE] EXTRACTVALUE 함수, EXTRACT 함수 (1) | 2021.10.13 |
[ORACLE] NVL 함수, NVL2 함수 (0) | 2021.10.12 |
[ORACLE/MYSQL] 자동 커밋 끄는 법 (0) | 2021.10.10 |
[ORACLE] SELECT문에서 숫자 및 문자 원하는 데이터 출력하기 (0) | 2021.10.09 |