我有一个表,并希望通过id填充NULL名称由现有名称。只要这个id中存在一个,否则为空。表:
<表类>
id
SubId
名称
tbody><<tr>1 1 空 12 空 3 1 Werner 41 空 51 空 71 空 81 Rutishauser 131 空 16 1 Radak 171 空 19 1 空 201 哉 512 1 Chiozza 512 2 Scarmiglione 512 3 Chiozza 688 1 Gschwend 688 2 空 表类>
尝试以下方法-
计算每个Id的唯一名称的个数,然后只更新该计数为1且名称为NULL的行:
with n as (
select id,
Count(distinct name) cnt,
Max(name) name
from t
group by id
)
update t set
t.name = n.name
from t join n on n.id = t.id and n.cnt = 1
where t.name is null;