Partager via


Opérateur de concaténation de chaînes (Moteur de base de données)

L'opérateur de concaténation de chaînes est le signe plus (+). Vous pouvez combiner, ou concaténer, deux ou plusieurs chaînes de caractères en une seule. Vous pouvez également concaténer des chaînes binaires. Voici un exemple de concaténation :

SELECT ('abc' + 'def');

Voici l'ensemble des résultats.

------
abcdef

(1 row(s) affected)

La requête suivante affiche le nom des quatre premiers contacts dans la colonne Moniker selon l'ordre nom, prénom, avec une virgule et un espace après le nom.

USE AdventureWorks;
GO
SELECT LastName + ', ' + FirstName AS Moniker 
FROM Person.Contact
WHERE ContactID < 5;

Voici l'ensemble des résultats.

Moniker
-------------------------
Achong, Gustavo
Abel, Catherine
Abercrombie, Kim
Acevedo, Humberto

(4 row(s) affected)

D'autres types de données, tels que datetime et smalldatetime, doivent être convertis en chaînes de caractères à l'aide de la fonction de conversion CAST avant de pouvoir être concaténés avec une chaîne.

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

Voici l'ensemble des résultats.

---------------------------------------
The due date is Jul 13 2001 12:00AM

(1 row(s) affected)

La chaîne vide ('') est interprétée comme un espace :

SELECT 'abc' + '' + 'def'

Voici l'ensemble des résultats.

-------
abcdef

(1 row(s) affected)

[!REMARQUE]

La valeur sp_dbcmptlevel du degré de compatibilité détermine si une chaîne vide est interprétée comme un seul caractère espace ou comme un caractère vide. Pour cet exemple, si sp_dbcmptlevel a la valeur 65, les littéraux vides sont traités comme un seul caractère espace.

Lorsque les chaînes d'entrée possèdent toutes deux le même classement, la chaîne de sortie possède un classement identique aux entrées. Lorsque les chaînes d'entrée possèdent des classements différents, les règles de priorité de classement déterminent le classement de la chaîne de sortie. Vous pouvez également affecter un classement spécifique à l'aide de la clause COLLATE.