사업 검색 SQL에서 이런 식으로 썼다.
LOWER(COALESCE(notice_name, '')) LIKE ?
COALESCE는 여러 값 중에서
NULL이 아닌 첫 번째 값을 반환한다.
COALESCE(notice_name, '')
이면
notice_name 값 있음
→ 그 값 사용
notice_name이 NULL
→ 빈 문자열 사용
이렇게 된다.
Biz Assist에서는 검색 대상 컬럼이 NULL이어도
문자열 검색할 때 문제가 생기지 않게 쓰였다.
또 회사 DB의 발주기관 컬럼명이 버전마다 다를 수 있어서
여러 후보 컬럼 중 값이 있는 걸 고를 때도 썼다.
COALESCE(
ordering_organization_name,
ordering_org_name,
client_name,
organization_name
)
기억할 건 간단하다.
COALESCE
→ NULL 대신 사용할 값 고르기
→ 여러 후보 중 첫 번째로 NULL이 아닌 값 가져오기