我的表包含Address1,Address2,Address3等...其中值可以为null或为空。
我通过将这些字段连接成一个来构建完整地址。
Select Column1, Column2, ISNULL(Address1,'') + ', ' + ISNULL(Address2,'')+ ', ' + ISNULL(Address3,'') As FullAddress
from TableName
问题是如果address1为null,但它仍然附加','我想删除。所以它最终会像',address2value'
有更好的方法吗
答案 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
结果:
答案 2 :(得分:0)
如果任何address1或address2或address3包含Null,则不会添加分隔符
SELECT Column1, Column2, CONCAT_WS(',',IFNULL(Address1,NULL),IFNULL(Address2,NULL),IFNULL(Address3,NULL)) AS FullAddress
FROM TableName;