Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como concatenar colunas corretamente usando T-SQL?


Quando você concatena qualquer coisa com um null, ele retorna null. Então, estou tentando concatenar uma vírgula com o valor da coluna fornecido e, se essa expressão retornar nulo, uso Coalesce para retornar uma string vazia. No final, se eu obtiver um valor, todo o resultado começará com uma vírgula. Então eu removo essa vírgula usando a função Stuff.
Select Stuff(
    Coalesce(',' + FirstName,'')
    + Coalesce(',' + LastName,'')
    + Coalesce(',' + StreetAddress,'')
    + Coalesce(',' + City,'')
    + Coalesce(',' + Country,'')
    + Coalesce(',' + PostalCode ,'')
    , 1, 1, '')
From Client

Se você quiser apenas o endereço, obviamente você incluirá apenas essas colunas:
Select FirstName, LastName
    , Stuff(
        Coalesce(',' + StreetAddress,'')
        + Coalesce(',' + City,'')
        + Coalesce(',' + Country,'')
        + Coalesce(',' + PostalCode ,'')
    , 1, 1, '')
From Client