요약
- MYSQL 함수
- COALESCE는 여러 인자를 받을 수 있고, 첫 번째로 NULL이 아닌 값을 반환한다.
- IFNULL은 두 개의 인자만 받으며, 첫 번째 인자가 NULL일 경우 두 번째 인자를 반환한다.
COALESCE 함수
COALESCE
함수는 첫 번째로 NULL이 아닌 값을 반환한다.
여러 개의 인자를 받을 수 있다.
SELECT PT_NAME, PT_NO, GEND_CD, AGE, COALESCE(TLNO, 'NONE') AS TLNO
FROM PATIENT
WHERE AGE <= 12 AND GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME ASC;
IFNULL 함수
IFNULL
함수는 두 개의 인자를 받아 첫 번째 인자가 NULL일 경우 두 번째 인자를 반환한다.
두 개의 인자만 받을 수 있다.
SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, 'NONE') AS TLNO
FROM PATIENT
WHERE AGE <= 12 AND GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME ASC;
성능 차이
COALESCE
- 여러 인자를 받을 수 있기 때문에, 인자의 수가 많아질수록 성능에 약간의 영향을 줄 수 있다.
- 일반적으로 IFNULL보다 조금 더 복잡한 연산을 포함하므로, 성능이 미세하게 떨어질 수 있다.
IFNULL
- 두 개의 인자만을 비교하기 때문에 비교적 간단한 연산이다.
- 특정 DBMS에서 IFNULL이 최적화되어 있는 경우, 약간 더 빠를 수 있다.
- 단순한 NULL 대체 연산에서는 COALESCE보다 효율적일 수 있다.