DB

[MySQL] Oracle의 NVL, NVL2를 MySQL에서 구현하기

오선지♬ 2024. 8. 10. 10:43
728x90
반응형

MySQL에서는 NVL와 NVL2와 유사한 기능을 하는 함수로 IFNULL과 COALESCE, 그리고 IF 함수가 있습니다.

각 함수의 사용법과 기능은 다음과 같습니다.

 

IFNULL

IFNULL 함수는 오라클의 NVL과 유사하게 첫 번째 인수가 Null인 경우 두 번째 인수를 반환합니다.

IFNULL(expr1, expr2)
SELECT IFNULL(commission_pct, 0) AS commission FROM employees;

이 예제에서는 commission_pct가 Null이면 0을 반환하고, Null이 아니면 commission_pct 값을 반환합니다.

 

COALESCE

COALESCE 함수는 다수의 인수를 받아 첫 번째로 Null이 아닌 값을 반환합니다.

오라클의 NVL과 비슷하지만, 더 많은 인수를 처리할 수 있습니다.

COALESCE(expr1, expr2, ..., exprN)
SELECT COALESCE(commission_pct, bonus_pct, 0) AS compensation FROM employees;

 

 

IF

IF 함수는 오라클의 NVL2와 유사하게 조건에 따라 서로 다른 값을 반환합니다.

IF(expr1, expr2, expr3)
SELECT IF(commission_pct IS NOT NULL, salary * commission_pct, salary) AS income FROM employees;

이 예제에서는 commission_pct가 Null이 아니면 salary * commission_pct를 반환하고, Null이면 salary를 반환합니다.

728x90
반응형

'DB' 카테고리의 다른 글

[DB][Oracle] ADD_MONTHS  (1) 2024.08.28
[DB][Oracle] TO_TIMESTAMP 함수  (0) 2024.08.18
[Oracle] NVL/ NVL2  (0) 2024.08.09
[SQLD] Entity, Instance, Attribute  (0) 2024.08.08
[MySQL][Oracle] Boolean 데이터 타입의 차이점  (0) 2024.08.07