使用分隔符连接多个字段

时间:2017-02-21 18:08:35

标签: sql sql-server-2008-r2

我的表包含Address1,Address2,Address3等...其中值可以为null或为空。

我通过将这些字段连接成一个来构建完整地址。

Select Column1, Column2, ISNULL(Address1,'') + ', ' + ISNULL(Address2,'')+ ', ' + ISNULL(Address3,'') As FullAddress
from TableName

问题是如果address1为null,但它仍然附加','我想删除。所以它最终会像',address2value'

有更好的方法吗

3 个答案:

答案 0 :(得分:3)

如果您不想要尾随或引导逗号,则可以执行以下操作:

services.AddEntityFrameworkSqlServer()
            .AddScoped<SqlServerConventionSetBuilder, DefaultCoreConventionSetBuilder>()
            .AddScoped<SqlServerMigrationsSqlGenerator, DefaultSqlServerMigrationSqlGenerator>()
            .AddDbContext<DataContext>();

答案 1 :(得分:1)

这是否符合您的要求?

Select  Column1, 
        Column2, 
        ISNULL(Address1+',','') + ISNULL(Address2+',','')+ISNULL(Address3,'') As FullAddress
from    TableName

结果:

enter image description here

答案 2 :(得分:0)

如果任何address1或address2或address3包含Null,则不会添加分隔符

SELECT Column1, Column2, CONCAT_WS(',',IFNULL(Address1,NULL),IFNULL(Address2,NULL),IFNULL(Address3,NULL)) AS FullAddress
FROM TableName;