Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 动态替换列数据中的值?不起作用_Sql_Sql Server - Fatal编程技术网

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)