[MSSQL] 문자열 합치기 (CONCAT, +)
- 데이터베이스/MSSQL
- 2021. 9. 5.
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("구분자", "문자열", "문자열", "문자열"...)
문자열을 특정 구분자로 합칠 때 유용하게 사용할 수 있다.