[mysql / oracle] null 처리 : ifnull / nvl / coalesce

2023. 1. 20. 16:53DB

null을 처리할 때 보통 nvl을 많이 떠올릴 것이다.

nvl(컬럼명, null일 경우 출력될 문자)
1
2
3
4
select to_char(sales_date, 'yyyy-mm-dd') sales_date
     , nvl(user_id, null) product_id
from online_sale
where to_char(sales_date, 'yyyy-mm'= '2022-03'
cs

그러나 이것은 oracle의 문법이기 때문에 mysql에서는 쓸 수 없다.

 

대신 mysql에서는 ifnull을 사용한다.

ifnull(컬럼명, null일 경우 출력될 문자)
1
2
3
4
select date_format(sales_date, '%Y-%m-%d') sales_date
     , ifnull(user_id, "null") product_id
from online_sale
where date_format(sales_date, '%Y-%m'= '2022-03'
cs

 

그리고 한 가지 더 있다.

COALESCE(컬럼명, null일 경우 출력될 문자)

mysql이든 oracle이든 어떤 db에서도 사용 가능한 함수이다.