Sql 动态替换列数据中的值?不起作用
我想通过更新的属性标签名称更新列属性标签名称,但更新后的属性标签名称为空,则值应为属性标签名称Sql 动态替换列数据中的值?不起作用,sql,sql-server,Sql,Sql Server,我想通过更新的属性标签名称更新列属性标签名称,但更新后的属性标签名称为空,则值应为属性标签名称 您似乎没有设置此值 SET @Attribute_Label_Name = Attribute_Label_Name , SET @Updated_Attribute_Label_Name = Updated_Attribute_Label_Name 你也可以在一次选择中完成 select @Attribute_Label_Name =Attribute_Label_Name,
您似乎没有设置此值
SET @Attribute_Label_Name = Attribute_Label_Name
,
SET @Updated_Attribute_Label_Name = Updated_Attribute_Label_Name
你也可以在一次选择中完成
select @Attribute_Label_Name =Attribute_Label_Name,
@Updated_Attribute_Label_Name = Updated_Attribute_Label_Name
from #temp
此外,请注意,如果从temp获得多个值,则可能无法获得预期结果
UPDATE tablename
SET Attribute_Label_Name=COALESCE(Updated_Attribute_Label_Name,Attribute_Label_Name)
COALESCE函数将首先检查更新的属性标签名称中的值(如果为空),然后将更新属性标签名称中的相同值。这里不清楚您要的是什么。这看起来像是一种非常程序化的逻辑,你把所有的事情都分解成许多小步骤。SQL擅长于基于集合的逻辑,在这种逻辑中,您可以构造一个描述要做什么而不是如何做的查询,然后数据库引擎完成这些步骤。我不确定你的整个逻辑是否可以用
UPDATE tablename
SET Attribute_Label_Name=COALESCE(Updated_Attribute_Label_Name,Attribute_Label_Name)