SQL:根据条件更新特定行
问题描述:
所以我有两个表如下所示:SQL:根据条件更新特定行
- T_Sample
ws_id|date|depth|number_l
| | |
和
- T_Sample_value
ws_id|parameter|value
| |
我在T_sample表中的一些行,具有负深度值并且在T_sample_value表中它们有一些数据;我想要做的是为这些行我想复制他们的数据(存在T_sample_value)行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)
答
你想办一个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;
+0
对不起,但你认为价值是“深度”。实际上,T_sample_value表可以包含具有相同ws_id且具有不同参数和不同值的数千行。 – user2019747
+0
好的,但现在你看到了更新连接的正确结构,你能不能适应你的需求? –
见https://stackoverflow.com/documentation/sql-server/1008/join#t = 201706201908261234727。 – APH
请提供样本数据和期望的结果。 –