DataBase/DataBase

문자열 결합 함수 CONCAT , GROUP_CONCAT ...

d-e-v-j 2024. 8. 16. 22:27
반응형

쿼리를 작성하다보면 문자열을 결합해야 하는 경우가 많다

그럴때 대부분의 SQL 에서 CONCAT을 사용한다.

한번 자세히 알아보자

 


 

1. CONCAT

두 개 이상의 문자열을 하나의 물자열로 결합하는데 사용한다

SELECT CONCAT('Hello', ' ', 'World') AS greeting;

// Hello World

조심해야 할것은 함수의 인수중 NULL이 있으면 결과도 NULL이 된다.

또 인수로 숫자등의 데이터가 있어도 자동으로 문자열로 변환되어 결합된다.

 

2. GROUP_CONCAT

그룹화된 행의 데이터를 하나의 문자열로 결합한다.

SELECT GROUP_CONCAT(name) AS all_names FROM users;
// 모든 NAME 값들이 쉼표(",")로 구분된 하나의 문자열로 반환

//구분자지정
SELECT GROUP_CONCAT(name SEPARATOR ' | ') AS all_names FROM users;


//중복제거
SELECT GROUP_CONCAT(DISTINCT name SEPARATOR ', ') AS all_names FROM users;


//결과 길이제한
SET SESSION group_concat_max_len = 10000;
//이건 권한이 없으면 안될수 있다. 최대가 10,000,000 이다.

 

3. CONCAT_WS

CONCAT과 유사하지만 첫번째 인수로 지정한 구분자를 사용하여 나머지 인수를 결합. NULL값은 무시 된다.

SELECT CONCAT_WS('-', '2024', '08', '16') AS date;
// "2024-08-16"

 


이렇게 문자를 쉽게 결합 할 수 있고

상황에 따라 필요한 함수로 깔끔하게 쿼리를 작성해보자.

 

728x90
반응형
LIST