[MSSQL] 문자열 합치기 (CONCAT, +)

SQL Server에서 문자열을 합칠 때는 CONCAT 함수와 더하기(+) 연산자를 사용한다. 문자열을 합칠 때는 되도록이면 CONCAT 함수를 사용할 것을 권장하지만, 더하기 연산자를 사용하는 것이 더 익숙하기 때문에 더 많이 사용하는 듯하다. 더하기 연산자를 사용할 때는 주의사항이 있으니 아래를 참고하기 바란다.

 

CONCAT 함수 사용하여 문자열 합치기

SELECT CONCAT('SQL', 'Server', '2019')  AS str1
     , CONCAT(2021, 12, 31, 23, 59, 59) AS str2

 

 

CONCAT 함수는 많은 데이터베이스에서 사용 가능한 ANSI SQL 함수이며, CONCAT 함수에 입력된 값은 문자형으로 변환 후 합치는 작업이 이뤄진다. 숫자와 문자가 함께 입력되어도 오류가 발생하지 않는다.

 

CONCAT 함수의 문자 파라미터는 254개 까지 입력이 가능하다.

 

더하기(+) 연산자를 사용하여 문자열 합치기

SELECT 'SQL' + 'Server' + '2019'                 AS str1
     , '2021' + '12' + '31' + '23' + '59' + '59' AS str2

 

 

문자열을 합치 때 더하기 연산자를 가장 많이 사용할 것이다. 문자열과 문자열을 합칠 때는 문제가 발생하지 않지만 문자열과 숫자를 합칠 경우 오류가 발생할 수 있으니 아래를 참고하기 바란다.

 

※ 더하기(+) 연산자 사용 시 주의사항

 

문자열과 숫자를 더하기 연산자로 합치면 오류가 발생한다.

이런 경우 CONCAT 함수를 사용하면 오류가 발생하지 않으며, 더하기 연산자를 사용해야 할 경우 문자형으로 변환 후 합쳐야 오류가 발생하지 않는다.

 

 

숫자와 수치형 문자를 합 칠경 우 수치형으로 변환 후 더하기 연산을 한다.

문자열로 합쳐야 할 경우 문자형으로 변환 후 합쳐야 한다.

 

CONCAT_WS 함수 (구분자로 합치기)

SELECT CONCAT_WS(', ', 'SQL', 'Server', '2019') AS str1
     , CONCAT_WS('@', 'test', 'naver.com')      AS str2

 

 

CONCAT_WS("구분자", "문자열", "문자열", "문자열"...)

문자열을 특정 구분자로 합칠 때 유용하게 사용할 수 있다.

 

 

댓글

Designed by JB FACTORY