반응형
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
위와 같이 형변환을 거친 뒤에야 정상적인 결과를 반환하게 된다.
반응형
'프로그래밍 > MSSQL' 카테고리의 다른 글
[MSSQL] DATEDIFF, DATEADD 날짜 비교, 날짜 계산 (0) | 2019.10.25 |
---|---|
[MSSQL] date format 날짜 형식 (CONVERT DATETIME) (0) | 2019.10.25 |
[MSSQL] XML 데이터를 테이블 형태로 저장 (XML to DB) (0) | 2019.10.06 |
[MSSQL] JOIN CASE, JOIN OR 조건에 따라 조인테이블 및 조인조건 변경 (0) | 2019.10.02 |
[MSSQL] OUTPUT INSERTED, DELETED 데이터 수정 및 삭제 전 백업 (1) | 2019.10.02 |