[Oracle]_NVL 사용 (DATE,Number) 비교

2022. 8. 29. 10:34[DB]/[Oracle]_DB

728x90
반응형

사용환경]

 

DB : oracle

FrameWork :  mybatis,ibatis

 

문제 발생]

 

NULL 처리

 

시도 방법]

 

CASE WHEN 을 사용

NVL 함수를 사용


 

NVL 을 사용했을 때 문제가 되었던 점을 정리해 보았습니다.

 

날자, Number 을 비교했을 때 문제 발생

 

NVL 의 경우 

NVL(target,result) 로 2가지 인자를 받습니다.

 

만약 target 이 DATE 나 INT 일 경우 동일한 자료형으로 바꿔줄 수 있습니다.

이를 치환할 target 자료형에 맞춰야 합니다.

 

제가 한 부분은

null일 경우 '-' (하이픈) 처리를 해야 했고, 값은 varchar

이를 group 하여 오름차순 정렬을 해야 했습니다.

 

 

해결방법

 

null은 null 대로 반환이 필요하고

0의 값은 별도로 존재하며

0과 null은 다른것임으로 NVL 등으로 null을 치환하지 않고 그대로 받아 온 뒤

이를 프론트에서 구분을 나눠서 처리하였습니다.

 

 

728x90
반응형