我有这个问题:
update CA_San_Francisco as p
set geo = u.geo
from parcels_union u
where u.street_number = p.street_number
and u.street_name = p.street_name
and u.street_type = p.street_type
and u.street_direction = p.street_direction
and u.street_unit = p.street_unit
但是,它不会更新两个字段都为空的任何行。换句话说,如果两个表的street_direction都没有值,那么即使它们都是相同的 - 我都没有结果 - 都是空值。
我得到的东西不能是=空的。那么如何获得所有结果?
谢谢,布拉德
答案 0 :(得分:1)
您可以检查该字段是否为NULL
,如果是,则将其更改为您可以检查的字段。
例如,您可以将Where
子句更改为以下
where coalesce(u.street_number,'') = coalesce(p.street_number,'')
and coalesce(u.street_name,'') = coalesce(p.street_name,'')
and coalesce(u.street_type,'') = coalesce(p.street_type,'')
and coalesce(u.street_direction,'') = coalesce(p.street_direction,'')
and coalesce(u.street_unit,'') = coalesce(p.street_unit,'')
但是,如果这些列中有多行NULL
,那么您的更新中会有意外的分配......