Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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_Join - Fatal编程技术网

SQL:根据条件更新特定行

SQL:根据条件更新特定行,sql,sql-server,join,Sql,Sql Server,Join,因此,我有两个表,如下所示: - T_Sample ws_id|date|depth|number_l | | | 及 我在T_sample表中有一些行,它们有负的深度值,在T_sample_value表中它们有一些数据;我要做的是,对于这些行,我想将它们的数据(存在于T_sample_值中)复制到T_sample中深度值为0的那一行 我尝试使用子查询执行更新集查询,但得到的错误是,子查询确实返回多行,并且无法更新字段。我试过的看起来很像这样: UPDATE T_sam

因此,我有两个表,如下所示:

- T_Sample
ws_id|date|depth|number_l
     |    |     |

我在T_sample表中有一些行,它们有负的深度值,在T_sample_value表中它们有一些数据;我要做的是,对于这些行,我想将它们的数据(存在于T_sample_值中)复制到T_sample中深度值为0的那一行

我尝试使用子查询执行更新集查询,但得到的错误是,子查询确实返回多行,并且无法更新字段。我试过的看起来很像这样:

UPDATE T_sample_value
SET T_sample_value.ws_id = (select blah blah where depth is <0)
WHERE T_sample_value.ws_id = (select blah blah where depth is = 0)
更新T\u样本值

设置T_sample_value.ws_id=(选择blah blah,其中深度为您希望执行
更新连接
类似操作

UPDATE a
SET depth = b.value
FROM T_Sample a
JOIN T_Sample_value b
    ON a.ws_id = b.ws_id
WHERE a.depth = 0;

很抱歉,您假设值为“深度”。实际上,T_sample_value表可以包含数千行具有相同ws_id、不同参数和不同值的行。好的,但是现在您看到了更新联接的正确结构,您不能根据需要调整它吗?请提供示例数据和所需结果。
UPDATE a
SET depth = b.value
FROM T_Sample a
JOIN T_Sample_value b
    ON a.ws_id = b.ws_id
WHERE a.depth = 0;