Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment concaténer correctement des colonnes à l'aide de T-SQL ?

Lorsque vous concaténez quoi que ce soit avec un null, il renvoie null. J'essaie donc de concaténer une virgule avec la valeur de colonne donnée et si cette expression renvoie null, j'utilise Coalesce pour renvoyer une chaîne vide. À la fin, si j'obtiens une valeur, tout le résultat commencera par une virgule. J'enlève donc cette virgule en utilisant la fonction Stuff.

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

Si vous ne voulez que l'adresse, vous n'incluez évidemment que ces colonnes :

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