[Oracle] 문자형을 숫자형으로 바꾸기 / Null인 경우 디폴트 주기 / Max 함수 사용하기

 

테이블 생성 시 varchar 등의 타입으로 컬럼을 만들었을 때 max와 같은 함수를 사용할 수 없다.

(예: 문자형은 숫자 9를 숫자 10보다 더 높은 것으로 인식하기 때문)

따라서 Max 함수를 사용하려면 숫자형으로 형 변환이 반드시 필요하다. 

이 때, 주의할 점은 그 문자형 컬럼값이 null인 경우도 있다는 것이다. 

숫자형일 때는 이럴 경우 '0'으로 반환해야 할 때도 있다.

 

1. 문자형 -> 숫자형으로 바꾸기

 -> TO_NUMBER

SELECT TO_NUMBER(CHAR_COL) FROM DUAL;

2. NULL일 때 DEFAULT '0' 주기

  --> NVL

SELECT NVL(TO_NUMBER(CHAR_COL),0) FROM DUAL;

3. 위 내용으로 MAX 함수 사용하기

SELECT MAX(NVL(TO_NUMBER(CHAR_COL),0)) FROM DUAL;

 

+ Recent posts