字符串串联运算符为加号 (+)。可以将两个或多个字符串合并或串联成一个字符串。还可以串联二进制字符串。以下是一个串联示例:
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 子句分配特定的排序规则。
请参阅
其他资源
COLLATE (Transact-SQL)
排序规则优先级 (Transact-SQL)
运算符 (Transact-SQL)
sp_dbcmptlevel (Transact-SQL)
+(字符串串联)(Transact-SQL)