文字列連結演算子 (データベース エンジン)

文字列連結演算子はプラス記号 (+) です。複数の文字を 1 つの文字列に結合できます。バイナリ文字列も連結できます。連結の例は次のとおりです。

SELECT ('abc' + 'def');

以下に結果セットを示します。

------
abcdef

(1 row(s) affected)

次のクエリでは、Moniker 列にある最初の 4 つの連絡先の名前が、姓、名の順に表示されます。姓と名はコンマとスペースで区切られます。

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)

空文字列 ('') は、スペース 1 つとして評価されます。

SELECT 'abc' + '' + 'def'

以下に結果セットを示します。

-------
abcdef

(1 row(s) affected)
ms175524.note(ja-jp,SQL.90).gifメモ :
空文字列 ('') を 1 つの空白文字と空の文字のどちらに解釈するかは、sp_dbcmptlevel の互換性レベルの設定によって決まります。この例では、sp_dbcmptlevel が 65 の場合、空リテラルは 1 つのスペースとして扱われます。

入力文字列がどちらも同じ照合順序のときは、出力文字列の照合順序は入力文字列と同じになります。入力文字列の照合順序が異なるときは、照合の優先順位のルールで出力文字列の照合順序が指定されます。また、COLLATE 句を使用して特定の照合を割り当てることもできます。

参照

その他の技術情報

COLLATE (Transact-SQL)
照合順序の優先順位 (Transact-SQL)
演算子 (Transact-SQL)
sp_dbcmptlevel (Transact-SQL)
+ (文字列連結) (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手