COALESCE( 쿼리 1, 쿼리 2)

jinvicky·2023년 8월 29일

SQL

목록 보기
5/8

쿼리 1로 조회한 데이터가 없는 경우(NULL일 경우), NULL을 반환하는 대신 예비 쿼리를 반호나하고 싶을 때 사용했다.

나의 경우 수수료 서비스를 개발하는데 로직이 아래와 같았다.
1. 서비스 아이디와 사용자 아이디로 수수료-사용자에서 수수료를 조회한다.
2. 1에 대한 수수료가 없는 경우 서비스 아이디의 기본 수수료 아이디로 수수료를 조회한다.

그래서 금액과 금액 형식을 조회하기 위해 간단히 아래처럼 짰다(내용은 비공)

SELECT COALESCE(
(쿼리 1)
, (쿼리 2)
) AS DATA_AMT // 금액
, COALESCE(
(쿼리 3)
, (쿼리 4)
) AS AMT_FORMAT // 금액 형식

COALSECE()란?
인자로 주어진 컬럼들 중에서 NULL이 아닌 첫 번째 값을 반환하는 함수이다.
인자가 A,B가 있을 때 A가 null이면 B, A, B 둘 다 null이면 null을 반환한다.

나의 경우 수수료 - 사용자 식으로 매핑이 되어 있지 않다면,
바로 서비스의 기본 수수료 아이디로 수수료를 구하도록 했다.
(이것도 없으면 그냥 에러 나는 거지...)

profile
개발, 그림, 기록

0개의 댓글