表名:myTable
,我需要在同一列中用Null
更新A的值
Group Value
A 10
A NULL
A NULL
A 10
B 20
B 20
B 20
C 30
预期:
Group Value
A 10
A 10
A 10
A 10
B 20
B 20
B 20
C 30
我的查询:
Update myTable
Set myTable.Age = b.Age
FROM myTable b
WHERE A.Age is Null
我得到relation doesn't exist
。
我在做什么错了?
答案 0 :(得分:0)
我认为相关子查询可能是解决方法:
update myTable t
set Age = (select t2.Age from mytable t2 where t2.name = t.name and t2.Age is not null)
where t.Age is Null;
注意:如果age
位于给定name
的原始数据的多行中,则会产生错误。
如果性能是一个问题,则需要在mytable(name, age)
上建立索引。
Here是一个db <>小提琴示例。
答案 1 :(得分:0)
尝试此查询
UPDATE myTable SET Age =
(SELECT b.Age
FROM myTable b
WHERE b.Group = myTable.Group AND b.Age IS NOT NULL
LIMIT 1)
WHERE Age IS NULL