字符串表達(dá)式中的運(yùn)算符,將兩個(gè)或多個(gè)字符或二進(jìn)制字符串、列或字符串和列名的組合串聯(lián)到一個(gè)表達(dá)式中(字符串運(yùn)算符)。
expression + expression
expression
是字符和二進(jìn)制數(shù)據(jù)類(lèi)型分類(lèi)中任何數(shù)據(jù)類(lèi)型(image、ntext 或 text 數(shù)據(jù)類(lèi)型除外)的任何有效 Microsoft® SQL Server™ 表達(dá)式。兩個(gè)表達(dá)式都必須具有相同的數(shù)據(jù)類(lèi)型,或者其中的一個(gè)表達(dá)式必須能夠隱式地轉(zhuǎn)換為具有另一種數(shù)據(jù)類(lèi)型的表達(dá)式。
在二進(jìn)制字符串連同任何字符串與二進(jìn)制字符串之間進(jìn)行串聯(lián)時(shí),必須使用字符數(shù)據(jù)的顯式轉(zhuǎn)換。下面的示例顯示了對(duì)于二進(jìn)制串聯(lián),何時(shí)必須使用 CONVERT(或 CAST),何時(shí)不需要使用 CONVERT(或 CAST)。
DECLARE @mybin1 binary(5), @mybin2 binary(5)
SET @mybin1 = 0xFF
SET @mybin2 = 0xA5
-- No CONVERT or CAST function is necessary because this example
-- concatenates two binary strings.
SELECT @mybin1 + @mybin2
-- A CONVERT or CAST function is necessary because this example
-- concatenates two binary strings plus a space.
SELECT CONVERT(varchar(5), @mybin1) + ' '
+ CONVERT(varchar(5), @mybin2)
-- Here is the same conversion using CAST
SELECT CAST(@mybin1 AS varchar(5)) + ' '
+ CAST(@mybin2 AS varchar(5))
返回優(yōu)先級(jí)最高的參數(shù)的數(shù)據(jù)類(lèi)型。有關(guān)更多信息,請(qǐng)參見(jiàn)數(shù)據(jù)類(lèi)型的優(yōu)先順序。
當(dāng)串聯(lián)空值時(shí),由 sp_dboption 的 concat null yields null 設(shè)置或者 SET CONCAT_NULL_YIELDS_NULL 決定某個(gè) expression 為 NULL 時(shí)的行為。根據(jù) concat null yields null 或者將 SET CONCAT_NULL_YIELDS_NULL 啟用為 ON,'string' + NULL 將返回 NULL。如果禁用了 concat null yields null 或 SET CONCAT_NULL_YIELDS_NULL,則結(jié)果為 'string'。
下面的示例從多個(gè)字符列中創(chuàng)建單個(gè)列(在列標(biāo)題 Name 下),其中含有作者的姓氏,后面跟一個(gè)逗號(hào)和一個(gè)空格,然后是作者的名字。結(jié)果集是按照作者的姓氏,然后按照作者名字以字母遞增順序排列的。
USE pubs
SELECT (au_lname + ', ' + au_fname) AS Name
FROM authors
ORDER BY au_lname ASC, au_fname ASC
下面是結(jié)果集:
Name
--------------------------------------------------------------
Bennet, Abraham
Blotchet-Halls, Reginald
Carson, Cheryl
DeFrance, Michel
del Castillo, Innes
Dull, Ann
Green, Marjorie
Greene, Morningstar
Gringlesby, Burt
Hunter, Sheryl
Karsen, Livia
Locksley, Charlene
MacFeather, Stearns
McBadden, Heather
O'Leary, Michael
Panteley, Sylvia
Ringer, Albert
Ringer, Anne
Smith, Meander
Straight, Dean
Stringer, Dirk
White, Johnson
Yokomoto, Akiko
(23 row(s) affected)
該示例使用 CAST 函數(shù)將 numeric 和 date 數(shù)據(jù)類(lèi)型串聯(lián)起來(lái)。
USE pubs
SELECT 'The order date is ' + CAST(ord_date AS varchar(30))
FROM sales
WHERE ord_num = 'A2976'
ORDER BY ord_num
下面是結(jié)果集:
------------------------------------------------
The order date is May 24 1993 12:00AM
(1 row(s) affected)
下面的示例串聯(lián)多個(gè)字符串,形成一個(gè)長(zhǎng)字符串。若要顯示居住在 California 州的每個(gè)作者的姓氏和名字的首字母,則應(yīng)該在姓氏后面設(shè)置一個(gè)逗號(hào),并在名字的首字母后放置一個(gè)句點(diǎn)。
USE pubs
SELECT (au_lname + ',' + SPACE(1) + SUBSTRING(au_fname, 1, 1) + '.') AS Name
FROM authors
WHERE state = 'CA'
ORDER BY au_lname ASC, au_fname ASC
下面是結(jié)果集:
Name
--------------------------------------------
Bennet, A.
Carson, C.
Dull, A.
Green, M.
Gringlesby, B.
Hunter, S.
Karsen, L.
Locksley, C.
MacFeather, S.
McBadden, H.
O'Leary, M.
Straight, D.
Stringer, D.
White, J.
Yokomoto, A.
(15 row(s) affected)
相關(guān)文章