Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 NULL을 0으로 변환하는 방법 – IFNULL() 함수 활용 가이드

MySQL에서 NULL을 0으로 변환하는 방법

MySQL에서 NULL 값을 0으로 변환(타입캐스팅)하려면 IFNULL() 함수를 사용하면 됩니다. IFNULL() 함수는 첫 번째 인수가 NULL이 아니면 해당 값을 그대로 반환하고, NULL이면 두 번째 인수로 지정한 대체 값(여기서는 0)을 반환합니다.

기본 문법

SELECT IFNULL(yourColumnName, 0) AS anyVariableName
FROM yourTableName;

개념을 쉽게 이해하기 위해 먼저 테이블을 생성해 보겠습니다.

mysql> create table TypecastDemo
    -> (
    ->    AccountNumber int
    -> );
Query OK, 0 rows affected (0.84 sec)

이제 NULL 값을 포함한 레코드를 삽입해 보겠습니다.

mysql> insert into TypecastDemo values(NULL);
Query OK, 1 row affected (0.13 sec)

mysql> insert into TypecastDemo values(1234);
Query OK, 1 row affected (0.14 sec)

mysql> insert into TypecastDemo values(9876);
Query OK, 1 row affected (0.14 sec)

mysql> insert into TypecastDemo values(6666);
Query OK, 1 row affected (0.16 sec)

mysql> insert into TypecastDemo values(NULL);
Query OK, 1 row affected (0.27 sec)

mysql> insert into TypecastDemo values(NULL);
Query OK, 1 row affected (0.36 sec)

mysql> insert into TypecastDemo values(3214);
Query OK, 1 row affected (0.34 sec)

SELECT 문을 사용하여 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select *from TypecastDemo;

실행 결과는 다음과 같습니다.

+---------------+
| AccountNumber |
+---------------+
|          NULL |
|          1234 |
|          9876 |
|          6666 |
|          NULL |
|          NULL |
|          3214 |
+---------------+
7 rows in set (0.00 sec)

위 출력 결과에서 AccountNumber 컬럼에 NULL 값이 여러 개 포함되어 있는 것을 확인할 수 있습니다. 이제 앞서 살펴본 IFNULL() 문법을 적용하여 NULL을 0으로 변환해 보겠습니다.

mysql> select ifnull(AccountNumber,0) as TypeCastNullToZero from TypecastDemo;

실행 결과는 다음과 같습니다.

+--------------------+
| TypeCastNullToZero |
+--------------------+
|                  0 |
|                1234 |
|                9876 |
|                6666 |
|                  0 |
|                  0 |
|                3214 |
+--------------------+
7 rows in set (0.00 sec)

결과에서 확인할 수 있듯이, 원래 NULL이었던 값들이 모두 0으로 변환되어 출력됩니다. 이처럼 IFNULL() 함수를 사용하면 집계 함수나 계산식에서 NULL로 인한 오류나 예상치 못한 결과를 방지할 수 있어 실무에서 매우 유용하게 활용됩니다.

여러 컬럼 처리 시 COALESCE() 활용하기

만약 두 개 이상의 컬럼에서 NULL을 처리해야 한다면 COALESCE() 함수를 사용하는 것이 좋습니다. COALESCE()는 인수 목록 중 NULL이 아닌 첫 번째 값을 반환하므로, 여러 컬럼을 한 번에 처리할 때 특히 유용합니다.

SELECT COALESCE(column1, column2, 0) FROM yourTableName;

위 쿼리는 column1이 NULL이면 column2를, column2마저 NULL이면 0을 반환합니다. 상황에 맞게 IFNULL()과 COALESCE()를 적절히 활용하면 NULL 처리를 더욱 깔끔하게 할 수 있습니다.