Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come concatenare correttamente le colonne usando T-SQL?

Quando concateni qualcosa con un null, restituisce null. Quindi sto provando a concatenare una virgola con il valore della colonna specificato e se quell'espressione restituisce null, uso Coalesce per restituire una stringa vuota. Alla fine, se ottengo un valore, l'intero risultato inizierà con una virgola. Quindi rimuovo quella virgola usando la funzione Stuff.

Select Stuff(
    Coalesce(',' + FirstName,'')
    + Coalesce(',' + LastName,'')
    + Coalesce(',' + StreetAddress,'')
    + Coalesce(',' + City,'')
    + Coalesce(',' + Country,'')
    + Coalesce(',' + PostalCode ,'')
    , 1, 1, '')
From Client

Se vuoi solo l'indirizzo, ovviamente includerai solo quelle colonne:

Select FirstName, LastName
    , Stuff(
        Coalesce(',' + StreetAddress,'')
        + Coalesce(',' + City,'')
        + Coalesce(',' + Country,'')
        + Coalesce(',' + PostalCode ,'')
    , 1, 1, '')
From Client