SQL如何填充NULL值

时间:2015-07-23 14:29:43

标签: sql

以下是我的情景:

我有一个包含字段的表:

.constant

有2 PolicyID MemberType MemberAddress MemberCity 个分类:

MemberType

只有MemberType ---------- Owners Dependents 与地址和城市相关联。因此,当我有一个所有者和几个家庭成员(家属)时,只有所有者行显示一个地址,所以家属行地址字段显示Owners(旁注:所有者和同一家庭的所有者将具有相同的{{ 1}})。如何填充地址字段,以便在有NULL地址字段的依赖项时,它将获取其所有者的地址并填充该字段。

当前结果

policyid

期望的结果

NULL

提前谢谢!

2 个答案:

答案 0 :(得分:1)

UPDATE t
SET t.MemberAddress = t2.MemberAddress and t.MemberCity=t2.MemberCity
FROM Table1 t 
INNER JOIN Table1 t2 ON t.Id = t2.Id 
WHERE t2.PolicyID = t.PolicyID AND t.MemberType<>'Owner' AND t.MemberAddress IS NULL

在运行更新检查之前,确保您正在更新正确的数据:

SELECT t.PolicyID, t2.PolicyID, t.MemberType, t2.MemberType, t.MemberAddress, t2.MemberAddress, t.MemberCity, t2.MemberCity
FROM Table1 t 
INNER JOIN Table1 t2 ON t.Id = t2.Id 
WHERE t2.PolicyID = t.PolicyID AND t.MemberType='Dependents' AND t.MemberAddress IS NULL

答案 1 :(得分:0)

您可以在update语句中进行简单的加入,如下所示:

UPDATE p1
  SET p1.MemberAddress = p2.MemberAddress,
      p1.MemberCity = p2.MemberCity
FROM policy p1
INNER JOIN policy p2 ON p1.PolicyID = p2.PolicyID
    AND p2.MemberType = 'Owner'
WHERE p1.MemberType <> 'Owner';

select * from policy;  --change it to match your tablename 

SQL Fiddle Demo

相关问题