字符串串联运算符(数据库引擎)

字符串串联运算符为加号 (+)。可以将两个或多个字符串合并或串联成一个字符串。还可以串联二进制字符串。以下是一个串联示例:

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 子句分配特定的排序规则。