라이브러리

[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 함수를 사용하는 것이 좋습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 74건 / 1 페이지

검색

게시물 검색