RDBS/MYSQL

[MYSQL]문자열 여러 개 합치기 - CONCAT(), CONCAT_WS()

MoonSta 2023. 1. 16. 13:31

문자열 여러 개 합치기 - CONCAT( ), CONCAT_WS( )

데이터 조회 시 여러 컬럼에서 조회되는 데이터를 하나의 문자열로 출력해야 하는 경우가 있습니다. 이러한 상황에서 CONCAT(), CONCAT_WS()함수를 사용하여 간단하게 문자열을 합칠 수 있습니다. 기본 사용법은 다음과 같습니다.

 

CONCAT( ) - 기본 문법 

-- 기본 문법
SELECT CONCAT(문자A, 문자B, 문자C ....) FROM 테이블

 

CONCAT( ) - 예제

SELECT CONCAT('Moonstar', ' ', 'Tistory') FROM DUAL;

-- 결과
-- Moonstar Tistory

SELECT CONCAT('Moonstar', NULL, 'Tistory') FROM DUAL;

-- 결과
-- NULL

CONCAT()은 순서대로 합쳐주긴 하지만 문자열 사이에 NULL이 포함되어 있다면 NULL을 반환합니다.


CONCAT_WS( ) - 기본 문법

-- 기본 문법
SELECT CONCAT_WS(구분자, 문자B, 문자C ....) FROM 테이블

 

CONCAT( )_WS - 예제

SELECT CONCAT_WS(',', 'Moonstar', 'Tistory') FROM DUAL;

-- 결과
-- Moonstar, Tistory

SELECT CONCAT_WS('~', 'Moonstar', 'Tistory') FROM DUAL;

-- 결과
-- Moonstar~ Tistory

SELECT CONCAT_WS('!', 'Moonstar!', 'Tistory') FROM DUAL;

-- 결과
-- Moonstar! Tistory

반면에 CONCAT_WS( )는 합쳐질 문장에 NULL이 들어가도 NULL을 반환하지 않습니다.