본문으로 건너뛰기
최종 수정: 에

CONCAT

설명​

CONCAT 함수는 여러 문자열을 순서대로 연결하여 하나의 문자열로 만듭니다. 이 함수는 가변 개수의 인수를 지원하며, 문자열 처리에서 가장 기본적이고 자주 사용되는 함수 중 하나입니다. 데이터 연결, 보고서 생성, 동적 SQL 구성 등의 상황에서 널리 사용됩니다. 인수 중 하나라도 NULL이면 전체 결과가 NULL이 된다는 점에 유의하세요.

구문​

CONCAT(<expr> [, <expr> ...])

매개변수​

매개변수설명
<expr>연결할 문자열 표현식으로, 문자열 상수, 열 이름 또는 다른 표현식을 사용할 수 있습니다. 타입: VARCHAR

반환 값​

모든 인수를 연결한 문자열을 VARCHAR 타입으로 반환합니다.

연결 규칙:

  • 인수 순서대로 문자열을 연결합니다.
  • 임의 개수의 인수를 지원합니다(최소 1개).
  • UTF-8 멀티바이트 문자를 올바르게 연결합니다.
  • 숫자와 기타 타입은 자동으로 문자열로 변환됩니다.

특수한 경우:

  • 인수 중 하나라도 NULL이면 NULL을 반환합니다(이것이 CONCAT_WS와의 주요 차이점입니다).
  • 인수가 없으면 구문 오류가 발생합니다.
  • 빈 문자열 인수는 연결 결과에 영향을 주지 않습니다.
  • 문자열이 아닌 타입을 혼합하여 사용할 수 있습니다.

예제​

  1. 기본 문자열 연결
SELECT CONCAT('a', 'b'), CONCAT('a', 'b', 'c');
+------------------+-----------------------+
| CONCAT('a', 'b') | CONCAT('a', 'b', 'c') |
+------------------+-----------------------+
| ab | abc |
+------------------+-----------------------+
  1. NULL 값 처리(핵심 기능)
SELECT CONCAT('a', NULL, 'c'), CONCAT('hello', NULL);
+------------------------+---------------------+
| CONCAT('a', NULL, 'c') | CONCAT('hello', NULL) |
+------------------------+---------------------+
| NULL | NULL |
+------------------------+---------------------+
  1. 빈 문자열 처리
SELECT CONCAT('hello', '', 'world'), CONCAT('', 'test', '');
+-----------------------------+------------------------+
| CONCAT('hello', '', 'world') | CONCAT('', 'test', '') |
+-----------------------------+------------------------+
| helloworld | test |
+-----------------------------+------------------------+
  1. 숫자와 문자열 혼합
SELECT CONCAT('User', 123), CONCAT('Price: $', 99.99);
+---------------------+---------------------------+
| CONCAT('User', 123) | CONCAT('Price: $', 99.99) |
+---------------------+---------------------------+
| User123 | Price: $99.99 |
+---------------------+---------------------------+
  1. 여러 인수 연결
SELECT CONCAT('A', 'B', 'C', 'D', 'E'), CONCAT('1', '2', '3', '4', '5');
+----------------------------------+----------------------------------+
| CONCAT('A', 'B', 'C', 'D', 'E') | CONCAT('1', '2', '3', '4', '5') |
+----------------------------------+----------------------------------+
| ABCDE | 12345 |
+----------------------------------+----------------------------------+
  1. UTF-8 멀티바이트 문자 연결
SELECT CONCAT('ṭṛì', ' ', 'ḍḍumai'), CONCAT('Hello', ' ', 'ṭṛì', ' ', 'ḍḍumai');
+------------------------------+--------------------------------------+
| CONCAT('ṭṛì', ' ', 'ḍḍumai') | CONCAT('Hello', ' ', 'ṭṛì', ' ', 'ḍḍumai') |
+------------------------------+--------------------------------------+
| ṭṛì ḍḍumai | Hello ṭṛì ḍḍumai |
+------------------------------+--------------------------------------+
  1. 경로 및 URL 구성
SELECT CONCAT('/home/', 'user/', 'file.txt'), CONCAT('https://', 'www.example.com', '/api');
+--------------------------------------+----------------------------------------------+
| CONCAT('/home/', 'user/', 'file.txt') | CONCAT('https://', 'www.example.com', '/api') |
+--------------------------------------+----------------------------------------------+
| /home/user/file.txt | https://www.example.com/api |
+--------------------------------------+----------------------------------------------+
  1. 이메일 주소 구성
SELECT CONCAT('user', '@', 'example.com'), CONCAT('admin.', 'support', '@', 'company.org');
+------------------------------------+-----------------------------------------------+
| CONCAT('user', '@', 'example.com') | CONCAT('admin.', 'support', '@', 'company.org') |
+------------------------------------+-----------------------------------------------+
| user@example.com | admin.support@company.org |
+------------------------------------+-----------------------------------------------+