라이브러리
[MYSQL] IFNULL(expr, null_val) - 값이 NULL이면 대체값 반환
IFNULL 함수란?
IFNULL 함수는 MySQL에서 제공하는 함수 중 하나로, expr이 NULL인 경우 null_val을 반환하는 함수입니다. expr은 테이블의 열 또는 계산된 값일 수 있습니다. null_val은 expr이 NULL인 경우 반환할 값을 지정합니다.
IFNULL 함수의 사용법
IFNULL 함수의 사용법은 다음과 같습니다.
#hostingforum.kr
sql
IFNULL(expr, null_val)
* expr: 테이블의 열 또는 계산된 값
* null_val: expr이 NULL인 경우 반환할 값
예제
다음 예제는 IFNULL 함수를 사용하여 NULL 값을 대체하는 방법을 보여줍니다.
#hostingforum.kr
sql
CREATE TABLE test (
id INT,
name VARCHAR(255),
age INT
);
INSERT INTO test (id, name, age) VALUES
(1, 'John', 25),
(2, 'Jane', NULL),
(3, 'Bob', 30);
SELECT
id,
name,
IFNULL(age, 0) AS age
FROM test;
이 예제에서는 test 테이블에 id, name, age 열이 있습니다. age 열의 값이 NULL인 행이 하나 있습니다. IFNULL 함수를 사용하여 age 열의 NULL 값을 0으로 대체한 후 SELECT 문을 실행하면 다음과 같은 결과가 나옵니다.
| id | name | age |
| --- | --- | --- |
| 1 | John | 25 |
| 2 | Jane | 0 |
| 3 | Bob | 30 |
실무 예제
다음 예제는 IFNULL 함수를 사용하여 NULL 값을 대체하는 실무 예제입니다.
#hostingforum.kr
sql
CREATE TABLE sales (
id INT,
product_name VARCHAR(255),
sales_amount DECIMAL(10, 2),
commission DECIMAL(10, 2)
);
INSERT INTO sales (id, product_name, sales_amount, commission) VALUES
(1, 'Product A', 1000.00, 50.00),
(2, 'Product B', NULL, 75.00),
(3, 'Product C', 2000.00, 100.00);
SELECT
id,
product_name,
sales_amount,
IFNULL(commission, 0) AS commission
FROM sales;
이 예제에서는 sales 테이블에 id, product_name, sales_amount, commission 열이 있습니다. commission 열의 값이 NULL인 행이 하나 있습니다. IFNULL 함수를 사용하여 commission 열의 NULL 값을 0으로 대체한 후 SELECT 문을 실행하면 다음과 같은 결과가 나옵니다.
| id | product_name | sales_amount | commission |
| --- | --- | --- | --- |
| 1 | Product A | 1000.00 | 50.00 |
| 2 | Product B | NULL | 0.00 |
| 3 | Product C | 2000.00 | 100.00 |
IFNULL 함수와 COALESCE 함수
IFNULL 함수와 COALESCE 함수는 모두 NULL 값을 대체하는 함수입니다. 하지만 COALESCE 함수는 여러 개의 표현식을 지정할 수 있습니다. COALESCE 함수의 사용법은 다음과 같습니다.
#hostingforum.kr
sql
COALESCE(expr1, expr2, ..., exprN)
* expr1, expr2, ..., exprN: 테이블의 열 또는 계산된 값
다음 예제는 COALESCE 함수를 사용하여 NULL 값을 대체하는 방법을 보여줍니다.
#hostingforum.kr
sql
SELECT
COALESCE(NULL, 'John', 'Jane') AS name;
이 예제에서는 COALESCE 함수를 사용하여 NULL 값을 'John'으로 대체합니다. 결과는 다음과 같습니다.
| name |
| --- |
| John |
COALESCE 함수를 사용하여 NULL 값을 대체할 때, 여러 개의 표현식을 지정할 수 있습니다. 다음 예제는 COALESCE 함수를 사용하여 NULL 값을 대체하는 방법을 보여줍니다.
#hostingforum.kr
sql
SELECT
COALESCE(NULL, 'John', 'Jane', 'Bob') AS name;
이 예제에서는 COALESCE 함수를 사용하여 NULL 값을 'John'으로 대체합니다. 결과는 다음과 같습니다.
| name |
| --- |
| John |
COALESCE 함수는 여러 개의 표현식을 지정할 수 있기 때문에, IFNULL 함수보다 유연한 함수입니다. 하지만 COALESCE 함수는 IFNULL 함수보다 느립니다. 따라서, NULL 값을 대체할 때, IFNULL 함수를 사용하는 것이 좋습니다.
댓글목록
등록된 댓글이 없습니다.