Condividi tramite


Operatore di concatenazione delle stringhe (Motore di database)

L'operatore di concatenazione delle stringhe è il segno più (+). È possibile combinare, o concatenare, due o più stringhe di caratteri in una sola stringa, nonché concatenare stringhe binarie. Di seguito viene riportato un esempio di concatenazione:

SELECT ('abc' + 'def');

Set di risultati:

------
abcdef

(1 row(s) affected)

Nella query riportata di seguito vengono visualizzati i nomi dei primi quattro contatti disponibili nella colonna Moniker, ordinati in base a cognome e nome, con una virgola e uno spazio dopo il cognome.

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

Set di risultati:

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

(4 row(s) affected)

Altri tipi di dati, ad esempio datetime e smalldatetime, per essere concatenati in una stringa devono essere convertiti in stringhe di caratteri utilizzando la funzione di conversione CAST.

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

Set di risultati:

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

(1 row(s) affected)

La stringa vuota ('') viene valutata come spazio singolo:

SELECT 'abc' + '' + 'def'

Set di risultati:

-------
abcdef

(1 row(s) affected)

[!NOTA]

Una stringa vuota ('') può essere interpretata come spazio singolo o come carattere vuoto a seconda dell'impostazione del livello di compatibilità di sp_dbcmptlevel. In questo esempio, se sp_dbcmptlevel è 65, i valori letterali vuoti vengono considerati come uno spazio singolo.

Quando alle stringhe di input sono associate le stesse regole di confronto, tali regole di confronto vengono associate anche alla stringa di output. Quando invece alle stringhe di input sono associate regole di confronto diverse, le regole di confronto della stringa di output vengono determinate in base alla precedenza delle regole di confronto. È inoltre possibile assegnare regole di confronto specifiche utilizzando la clausola COLLATE.