Postgresql合并行

时间:2014-12-29 05:34:39

标签: sql postgresql join merge plpgsql

鉴于下面的表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  |       |
+--------+-------+-------+

1 个答案:

答案 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