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

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

SELECT ('abc' + 'def');

下面是结果集:

------

abcdef

(1 row(s) affected)

以下查询在 Moniker 列中按姓氏、名字顺序(姓氏后加逗号和空格)显示了前四个联系人的姓名。

USE AdventureWorks2008R2;
GO
SELECT LastName + ', ' + FirstName AS Moniker 
FROM Person.Person
WHERE BusinessEntityID < 5;

下面是结果集:

Moniker

-------------------------

Achong, Gustavo

Abel, Catherine

Abercrombie, Kim

Acevedo, Humberto

(4 row(s) affected)

其他数据类型(如 datetime 和 smalldatetime)必须通过使用 CAST 转换函数转换成字符串才能与字符串串联。

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

下面是结果集:

---------------------------------------

The due date is Jul 13 2005 12:00AM

(1 row(s) affected)

空字符串 ('') 取值为一个空格:

SELECT 'abc' + '' + 'def';

下面是结果集:

-------

abcdef

(1 row(s) affected)

注意注意

将空字符串 ('') 解释成一个空格字符还是空字符取决于数据库的兼容级别设置。. 在此例中,如果兼容级别是 65,那么空文字被视为一个空格。

当输入的两个字符串具有相同的排序规则时,输出字符串将与输入字符串具有相同的排序规则。当输入字符串的排序规则不同时,排序规则优先规则可确定输出字符串的排序规则。还可以通过使用 COLLATE 子句分配特定的排序规则。