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

MySQL IFNULL() 함수로 NULL 값을 0으로 변환해 새 열에 표시하는 방법

MySQL에서 IFNULL() 함수를 사용하면 NULL 값을 원하는 값(예: 0)으로 대체하여 조회할 수 있습니다. 이 함수는 첫 번째 인자가 NULL이 아니면 그 값을 그대로 반환하고, NULL이면 두 번째 인자로 지정한 대체 값을 반환합니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable (Value int);
Query OK, 0 rows affected (1.02 sec)

2. 데이터 삽입하기

insert 명령을 사용하여 NULL 값과 일반 숫자가 섞인 레코드를 삽입합니다.

mysql> insert into DemoTable values(NULL);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values(20);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(NULL);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values(30);
Query OK, 1 row affected (0.13 sec)

3. 전체 레코드 조회하기

select 문을 사용해 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

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

+-------+
| Value |
+-------+
| NULL  |
| 10    |
| 20    |
| NULL  |
| 30    |
+-------+
5 rows in set (0.00 sec)

4. IFNULL()로 NULL을 0으로 변환하기

이제 select 문에서 IFNULL() 함수를 사용하면, 기존 열은 그대로 유지되면서 NULL이 0으로 변환된 값이 새 열에 함께 표시됩니다.

mysql> select Value,IFNULL(Value,0) from DemoTable;

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

+-------+-----------------+
| Value | IFNULL(Value,0) |
+-------+-----------------+
| NULL  | 0               |
| 10    | 10              |
| 20    | 20              |
| NULL  | 0               |
| 30    | 30              |
+-------+-----------------+
5 rows in set (0.00 sec)

위 결과를 보면 Value 열의 NULL 값이 두 번째 열에서 모두 0으로 변환된 것을 확인할 수 있습니다. 참고로 별칭(alias)을 사용하면 출력 열 이름을 더 깔끔하게 표현할 수도 있습니다. 예를 들어 select Value, IFNULL(Value,0) AS NewValue from DemoTable;처럼 작성하면 두 번째 열의 이름이 NewValue로 표시됩니다.