CONCAT_WS 함수를 알아보기에 앞서 CONCAT 함수에 대해서 간략하게 보고 오시면 좋을 것 같아요.
CONCAT 함수와 CONCAT_WS 함수는 핵심인 '문자열 연결'은 동일하지만 몇 가지 차이점이 존재해요.
이를 CONCAT_WS 함수의 특징을 통해서 알아보도록 하겠습니다.
기본형태
CONCAT_WS(구분자, 문자열, 문자열, ..)
1. 구분자를 지정해줘야 한다. (구분자 지정 필수!)
SELECT CONCAT_WS('.', 'HELLO', 'WORLD', 'GOOD');
결괏값: HELLO.WORLD.GOOD
SELECT CONCAT_WS('', 'HELLO', 'WORLD', 'GOOD');
결괏값: HELLOWORLDGOOD
SELECT CONCAT_WS(' ', 'HELLO', 'WORLD', 'GOOD');
결괏값: HELLO WORLD GOOD
> CONCAT 함수에서 구분자를 넣기 위해서는 아래와 같이 구분자를 하나씩 입력해줘야 해요. 이러한 수고를 덜하려면 CONCAT_WS 함수에서 구분자 지정을 통해 쉽게 해결할 수 있습니다.
SELECT CONCAT('HELLO', '.', 'WORLD', '.', 'GOOD');
결괏값: HELLO.WORLD.GOOD
2. NULL값이 있어도 괜찮다.
SELECT CONCAT_WS(' ', 'HELLO', NULL, 'WORLD');
결괏값: HELLO WORLD
SELECT CONCAT_WS(',', 'HELLO', NULL, 'WORLD');
결괏값: HELLO,WORLD
> CONCAT 함수에 NULL 값이 하나라도 포함되어 있으면 NULL이 반환되는 반면, CONCAT_WS 함수에는 NULL 값이 있어도 이를 무시하고 문자열을 연결해줘요.
* GROUP_CONCAT 함수도 있으니 같이 알아보면 좋을 것 같아요. 감사합니다.