鉴于下面的表A和表B,有人可以指导我使用什么SQL / PLPGSQL来产生所需的结果。非常感谢。
表A
+--------+-------+-------+
| USR_ID | COL1 | COL2 |
+--------+-------+-------+
| 1 | | 101 |
+--------+-------+-------+
| 2 | | 101 |
+--------+-------+-------+
表B
+--------+-------+-------+
| USR_ID | COL1 | COL2 |
+--------+-------+-------+
| 1 | 103 | |
+--------+-------+-------+
| 3 | 102 | |
+--------+-------+-------+
必修结果
+--------+-------+-------+
| USR_ID | COL1 | COL2 |
+--------+-------+-------+
| 1 | 103 | 101 |
+--------+-------+-------+
| 2 | | 101 |
+--------+-------+-------+
| 3 | 102 | |
+--------+-------+-------+
答案 0 :(得分:1)
使用coalesce
赋予非空值优先
select coalesce(a.usr_id,b.usr_id) usr_id,
coalesce(a.col1,b.col1) col1,
coalesce(a.col2,b.col2) col2
from tablea a full join tableb b
on a.usr_id = b.usr_id