sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo concatenar columnas correctamente usando T-SQL?

Cuando concatenas cualquier cosa con un nulo, devuelve nulo. Así que estoy tratando de concatenar una coma con el valor de la columna dada y si esa expresión devuelve un valor nulo, uso Coalesce para devolver una cadena vacía. Al final, si obtengo un valor, todo el resultado comenzará con una coma. Así que eliminé esa coma usando la función Stuff.

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

Si solo desea la dirección, obviamente solo debe incluir esas columnas:

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