【发布时间】:2019-04-18 16:15:35
【问题描述】:
我有如下数据,我想将具有空值的行与非空值组合在一起。
ID ColA ColB ColC ColD
1 A1 B1 null null
1 A2 B2 null null
1 null B3 C1 D1
2 A3 B3 null null
3 null null C3 D3
预期结果:
ID ColA ColB ColC ColD
1 A1 B1 C1 D1
1 A2 B2 C1 D1
2 A3 B3 null null
3 null null C3 D3
对于单个 ID,基本上可以存在多行(不同的 COLA),但只有一行具有 null ColA。
ColC 和 ColD 对于 ColA 不为空的行将始终为空。
我想将 ColA 为空的行的 ColB、ColC 和 ColD 值与 ColA 不为空的所有行合并。
【问题讨论】:
-
对于特定的 ID,总有一行 ColA IS NULL 或者该行可能存在也可能不存在?
-
可能的情况: 1. 只有空 ColA 的行。 2. 只有非空 ColA 的行。 3. ColA为空的行和ColA不为空的多行
-
然后使用 LEFT OUTER JOIN(见我的回答)。如果 ColA IS NOT NULL 的行可能不存在,请使用 FULL JOIN。
标签: oracle