CONCAT을 사용하여 문자 결합을 할때 결합 하는 값중 NULL이 있을경우 예상히 못한 결과를 얻는 경우도 있습니다.
예를 들어 아래와 같은 테이블이 있다고 가정하겠습니다.
테이블 이름은 test_table 이라고 정하겠습니다.
id col_a col_b col_c
---------------------------------------------
1 a b c
2 a b NULL
3 a NULL c
테이블에는 col_a, col_b, col_c 라는 컬럼이 있습니다.
3개의 컬럼에 있는 값을 CONCAT으로 문자 결합을 하는 방법은 아래와 같습니다.
SELECT id, CONCAT(col_a, col_b, col_c) AS col_abc FROM test_table;
쿼리를 실행한 결과
id col_abc
----------------
1 abc
2 NULL
3 NULL
id 2와 3의의 문자 결합 결과는 NULL 입니다.
컬럼에 NULL이 있어도 문자를 결합할 수 있는 방법으로는 IFNULL이 있습니다.
IFNULL 사용 방법
SELECT id, CONCAT(IFNULL(col_a, ""), IFNULL(col_b, ""), IFNULL(col_c,"")) AS col_abc FROM test_table;
IFNULL 실행 결과
id col_abc
-----------------
1 abc
2 ab
3 ac
문자를 결합 하려고 하는 항목중에 NULL값이 있어도 결합을 하고 싶은 경우의 예제를 알아봤습니다.
댓글