본문 바로가기

프로그래밍/MSSQL

[MSSQL] CONCAT 문자열 합치기

반응형

 

 

 

 

CONCAT

둘 이상의 문자열 값을 엔드투엔드 방식으로 연결하거나 조인한 결과 문자열을 반환합니다.

 

CONCAT(값1, 값2, 값3, ... 값N)

 

인수는 2개 이상 254개 이하로 사용 가능하다.

 

 

 

 

 

같은 타입의 값 연결

 

SELECT CONCAT('초보개발자', '꽁쥐')

DECLARE @string_value1 VARCHAR(10) = '초보개발자'
DECLARE @string_value2 VARCHAR(10) = '꽁쥐'
SELECT CONCAT(@string_value1, @string_value2)

 

결과 데이터

 

 

 

 

다른 타입의 값 연결

 

DECLARE @string_value1 VARCHAR(50) = '꽁쥐 친구는? '
DECLARE @int_value1 INT = 10
DECLARE @string_value2 VARCHAR(50) = '명'

SELECT CONCAT(@string_value1, @int_value1, @string_value2)

 

결과 데이터

 

 

 

 

 

NULL 값 연결

 

SELECT CONCAT(NULL, '꼬랑쥐')
SELECT CONCAT(NULL, NULL)

 

결과 데이터

 

CONCAT에서 NULL값은 빈 문자열로 암시적으로 변환하고,

CONCAT에서 모두 NULL값을 인수로 넣으면 VARCHAR(1) 형식의 빈 문자열을 반환한다.

 

 

 

 

 

+ 와 CONCAT 비교

문자열을 합칠때 + 로도 가능하다

하지만 +는 같은 타입의 값만 연결이 가능하다.

 

DECLARE @string_value1 VARCHAR(50) = '꽁쥐 친구는? '
DECLARE @int_value1 INT = 10
DECLARE @string_value2 VARCHAR(50) = '명'

SELECT @string_value1 + @int_value1 + @string_value2

 

이렇게 다른 타입의 값을 + 로 연결했더니 다음과 같이 오류 메시지를 반환한다.

 

 

결과 데이터

 

 

DECLARE @string_value1 VARCHAR(50) = '꽁쥐 친구는? '
DECLARE @int_value1 INT = 10
DECLARE @string_value2 VARCHAR(50) = '명'

SELECT @string_value1 + CAST(@int_value1 AS VARCHAR) + @string_value2

 

위와 같이 형변환을 거친 뒤에야 정상적인 결과를 반환하게 된다.

 

 

결과 데이터

 

 

반응형