SQL:根据条件更新特定行

时间:2017-06-20 19:04:42

标签: sql sql-server join

所以我有两张表如下:

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

- T_Sample_value
ws_id|parameter|value
     |         |

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

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

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)

1 个答案:

答案 0 :(得分:0)

您想要update-join喜欢

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;