[Programmers] 문자열 합치기

HAHAHELLO·2025년 3월 9일

SQL

목록 보기
7/17

MySQL에서 문자열을 합치기 위해서 여러 가지 문법을 사용할 수 있다. 주의할 점은 +로는 문자열을 합칠 수 없다는 것 ! Python과 헷갈리지 말자

CONCAT()

CONCAT() 함수를 사용할 때 주의할 점은 NULL이 포함되면 결과가 NULL이 된다는 것이다.

-- 기본형: CONCAT(str1, str2, ...)

SELECT CONCAT('Hello', NULL, 'World') AS result;
-- 결과: NULL

이를 방지하기 위해서 IFNULL() 또는 COALESCE()를 사용할 수 있다.

-- 기본형: expression이 NULL이면 default_value 반환
IFNULL(expression, default_value)

-- 기본형: 첫번째로 NULL이 아닌 값을 반환
COALESCE(value1, value2, ..., valueN)

CONCAT_WS()

CONCAT_WS()NULL값을 무시하고 연결한다.

-- 기본형: CONCAT_WS(separator, str1, str2, ...)

SELECT CONCAT_WS(', ', 'Apple', 'Banana', 'Cherry') AS result;
-- 결과: Apple, Banana, Cherry

SELECT CONCAT_WS(', ', 'Apple', NULL, 'Cherry') AS result;
-- 결과: Apple, Cherry

GROUP_CONCAT()

GROUP_CONCAT() 함수는 여러 행의 값을 하나의 문자열로 결합하는 데 사용된다. 정렬은 되지 않는다. 정렬을 하려면 ORDER BY 옵션을 사용해야 한다.

name 컬럼의 값이 기본 구분문자인 ,로 연결되어 하나의 문자열로 반환된다.

SELECT GROUP_CONCAT(name) AS names_list
FROM users;

GROUP BY를 활용하여 특정 그룹별로 문자열을 연결 할 수 있다.

SELECT department, GROUP_CONCAT(name ORDER BY name ASC SEPARATOR ' | ') AS employee_names
FROM employees
GROUP BY department;
profile
데이터 엔지니어가 되어 봅시다 🌈

0개의 댓글