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

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

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)

其他数据类型,如 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)
ms175524.note(zh-cn,SQL.90).gif注意:
将空字符串 ('') 解释成一个空格字符还是空字符取决于 sp_dbcmptlevel 的兼容级别设置。在此例中,如果 sp_dbcmptlevel 是 65,那么空文字将视为一个空格。

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

请参阅

其他资源

COLLATE (Transact-SQL)
排序规则优先级 (Transact-SQL)
运算符 (Transact-SQL)
sp_dbcmptlevel (Transact-SQL)
+(字符串串联)(Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助