Postgres没有来自链接表的结果,其中链接值为null

时间:2015-02-13 19:46:26

标签: sql postgresql null

我有这个问题:

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都没有值,那么即使它们都是相同的 - 我都没有结果 - 都是空值。

我得到的东西不能是=空的。那么如何获得所有结果?

谢谢,布拉德

1 个答案:

答案 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,那么您的更新中会有意外的分配......