我有一张包含以下信息的表格:
ID Value_N1 Date_N1 Value_N4 Date_N4
1 NULL 2017-05-31 0.236 2017-02-28
2 NULL 2017-05-31 0.589 2017-02-28
3 NULL 2017-08-30 0.898 2017-08-30
4 NULL 2017-11-30 0.789 2017-11-30
我想使用 Value_N4 中的值更新 Value_N1 列,其中 Date_N1 等于 Date_N4
我尝试使用以下查询,但我无处可去:
Update TableName
set Value_N1 = (select Value_N4 from TbleName where Date_N1 = Date_N4)
原因是此查询无效,因为它返回多个值。怎么能实现这一目标?
答案 0 :(得分:1)
您还可以使用CASE
表达式。
<强>查询强>
update TableName
set Value_N1 = (
case when Date_N1 = Date_N4
then Value_N4
else Value_N1 end
);
答案 1 :(得分:1)
更新TableName设置Value_N1 = Value_N4其中Date_N1 = Date_N4
答案 2 :(得分:0)
您将新值设置为Value_N1
的逻辑是正确的,但更新记录的限制应出现在WHERE
子句中。
UPDATE TableName
SET Value_N1 = Value_N4
WHERE Date_N1 = Date_N4