Search code examples
sqlsql-serverconcatenationcoalesce

How to concatenate strings and commas in SQL Server?


I'm relatively new to MSSQL, so sorry if the question might sounds trivial. I want to concatenate multiple fields with a delimiter ,. However, when the field is empty, the extra , will be included in the result string as well. So is there an easy way to solve this problem? For example,

SELECT VRI.Street_Number_and_Modifier + ',' + 
       VRI.Street_Direction + ',' + 
       VRI.Street_Name + ',' + 
       VRI.Street_Direction + ',' + 
       VRI.Street_Suffix + ',' + 
       VRI.Street_Post_Direction + ',' + 
       VRI.Unit
FROM View_Report_Information_Tables VRI

Solution

  • If the columns are empty instead of null, you can try this:

    SELECT VRI.Street_Number_and_Modifier 
        + CASE WHEN VRI.Street_Number_and_Modifier <> '' THEN ', ' ELSE '' END
           + VRI.Street_Direction
        + CASE WHEN VRI.Street_Direction <> '' THEN ', ' ELSE '' END
           + VRI.Street_Name
        + CASE WHEN VRI.Street_Name <> '' THEN ', ' ELSE '' END
           + VRI.Street_Direction
        + CASE WHEN VRI.Street_Direction <> '' THEN ', ' ELSE '' END
           + VRI.Street_Suffix
        + CASE WHEN VRI.Street_Suffix <> '' THEN ', ' ELSE '' END
           + VRI.Street_Post_Direction
        + CASE WHEN VRI.Street_Post_Direction <> '' THEN ', ' ELSE '' END
           + VRI.Unit
        + CASE WHEN VRI.Unit<> '' THEN ', ' ELSE '' END
    FROM View_Report_Information_Tables VRI