Share via


문자열 연결 연산자(데이터베이스 엔진)

문자열 연결 연산자는 더하기 기호(+)입니다. 두 개 이상의 문자열을 하나의 문자열로 결합 또는 연결하거나 이진 문자열을 연결할 수도 있습니다. 다음은 이러한 연결을 보여 주는 예입니다.

SELECT ('abc' + 'def');

결과 집합은 다음과 같습니다.

------
abcdef

(1 row(s) affected)

다음 쿼리에서는 Moniker 열 아래에 있는 처음 4개의 연락처 이름을 성 다음에 쉼표와 공백을 주고 성, 이름 순서로 표시합니다.

USE AdventureWorks;
GO
SELECT LastName + ', ' + FirstName AS Moniker 
FROM Person.Contact
WHERE ContactID < 5;

결과 집합은 다음과 같습니다.

Moniker
-------------------------
Achong, Gustavo
Abel, Catherine
Abercrombie, Kim
Acevedo, Humberto

(4 row(s) affected)

datetimesmalldatetime 등의 다른 데이터 형식은 문자열과 연결하기 전에 CAST 변환 함수를 사용하여 문자열로 변환해야 합니다.

USE AdventureWorks;
GO
SELECT 'The due date is ' + CAST(DueDate AS varchar(128))
FROM Sales.SalesOrderHeader
WHERE SalesOrderID = 43659;
GO

결과 집합은 다음과 같습니다.

---------------------------------------
The due date is Jul 13 2001 12:00AM

(1 row(s) affected)

빈 문자열(' ')은 공백 하나로 간주됩니다.

SELECT 'abc' + '' + 'def'

결과 집합은 다음과 같습니다.

-------
abcdef

(1 row(s) affected)

[!참고] 빈 문자열(‘‘)을 공백 하나로 해석할지 또는 빈 문자로 해석할지는 sp_dbcmptlevel의 호환성 수준 설정에 따라 달라집니다. 위의 예에서 sp_dbcmptlevel이 65면 빈 리터럴은 공백 하나로 처리됩니다.

입력 문자열의 데이터 정렬이 모두 같으면 출력 문자열의 데이터 정렬이 입력 문자열의 데이터 정렬과 같습니다. 입력 문자열의 데이터 정렬이 서로 다르면 데이터 정렬 선행 규칙에 따라 출력 문자열의 데이터 정렬이 결정됩니다. COLLATE 절을 사용하여 특정 데이터 정렬을 할당할 수도 있습니다.

참고 항목

관련 자료

COLLATE(Transact-SQL)
선행 정렬(Transact-SQL)
연산자(Transact-SQL)
sp_dbcmptlevel(Transact-SQL)
+(문자열 연결)(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기