쿼리 조건에 맞는 결과가 없는 경우에도, 값을 리턴받고 싶은 경우가 있다.
이 때는 MAX 함수를 사용하여 0으로 리턴받도록 할 수 있다.
1) COALESCE 함수로만 NULL 처리한 경우
WITH DATA_TABLE AS (
SELECT '1' AS A FROM DUAL
UNION ALL
SELECT '2' AS A FROM DUAL
)
SELECT COALESCE(A, '0') AS RESULT
FROM DATA_TABLE
WHERE A = '3';
결과값
위 예시 쿼리에 대한 결과가 없기 때문에, 이 결과값을 리턴받게 되는 경우 NULL이 될 것이다.
2) MAX 함수로 감싸서 NULL 처리한 경우
WITH DATA_TABLE AS (
SELECT '1' AS A FROM DUAL
UNION ALL
SELECT '2' AS A FROM DUAL
)
SELECT COALESCE(MAX(A), '0') AS RESULT
FROM DATA_TABLE
WHERE A = '3';
결과값
위의 예시는 MAX() 함수로 결과값을 감싼 뒤 COALESCE() 함수에 한 번 더 감싼 것이다.
기존에 조건에 해당하는 결과값 A가 없는 경우 COALESCE 함수가 적용되지 않았는데,
MAX 함수로 감싼 결과 COALESCE 함수에 의해 "0" 이라는 값을 리턴할 수 있게 되었다.
'DataBase > SQL' 카테고리의 다른 글
[SQL] 공백 제거 함수(TRIM, LTRIM, RTRIM) (0) | 2025.05.26 |
---|---|
[SQL] NULL 관련 SQL 함수(NVL, COALESCE, NULLIF) (0) | 2025.04.21 |
[SQL] ORDER BY에 조건을 주려면? (0) | 2025.03.13 |