개요
최근 SQL을 통해 문자열을 많이 다루게 될 것 같아 관련 내용을 정리해두고자 한다. 이 글에서는 문자열을 합치는 방법에 대해서 정리한다. 표준인 ANSI SQL을 기준으로 하고 싶어, PostgreSQL을 사용해 정리한다.
||
|| 연산자를 사용하면 두 개 이상의 문자열을 열결하여 하나의 문자열로 반환한다. 만약 연결할 문자열에 NULL이 포함되어 있으면 NULL을 반환한다.
str_1 || str_2
-- 예시
SELECT
'Concatenation' || ' ' || 'Operator' AS result,
'Concat with ' || NULL AS contain_null_result
;
실행 결과
| result | contain_null_result |
| ---------------------- | ------------------- |
| Concatenation Operator | |
CONCAT
CONCAT 함수는 char, varchar, text로 변환할 수 있는 인자를 전달받아 하나의 문자열로 연결하여 반환한다. ||과 다르게 NULL을 무시한다. 또한 VARIADIC 키워드를 이용해 배열을 인자로 받을 수도 있다.
CONCAT(str_1, str_2, ...)
-- 예시
SELECT
CONCAT ('CONCAT', ' ', 'function') AS func,
CONCAT('Concat with ', NULL) AS func_null;
실행 결과
| func | func_null |
| --------------- | ------------ |
| CONCAT function | Concat with |
CONCAT_WS
CONCAT_WS 함수는 여러 문자열을 지정한 구분 기호를 기준으로 연결한 문자열을 반환한다. 함수 이름의 WS는 with seperator를 뜻한다. CONCAT 함수와 비슷하게 NULL을 무시하고, 리스트도 인자값으로 받는다.
CONCAT_WS(separator,str_1,str_2,...);
-- 예시
SELECT
CONCAT_WS ('!', 'CONCAT', ' ', 'function') AS func,
CONCAT('!', 'Concat with ', NULL) AS func_null;
실행 결과
| func | func_null |
| ----------------- | ------------- |
| CONCAT! !function | !Concat with |
참고 문서
https://www.postgresqltutorial.com/postgresql-string-functions/postgresql-concat-function/