Оператор сцепления строк (компонент Database Engine)

Оператором объединения является знак плюс «+». Можно объединять две или более символьных строк в одну символьную строку. Кроме того, можно выполнить объединение двоичных строк. Ниже приведен пример объединения:

SELECT ('abc' + 'def');

Ниже приводится результирующий набор.

------
abcdef

(1 row(s) affected)

Следующий запрос отображает имена первых четырех деловых партнеров в столбце Moniker, упорядоченных по фамилии и имени, с запятой и пробелом после последнего имени.

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)

Другие типы данных, такие как datetime и smalldatetime, следует перед объединением со строкой преобразовывать в символьные строки с помощью функции преобразования 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.