【问题标题】:Postgresql Merging RowsPostgresql 合并行
【发布时间】:2015-02-25 08:16:36
【问题描述】:

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

【问题讨论】:

    标签: sql postgresql join merge plpgsql


    【解决方案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
    

    【讨论】:

    • 完美。感谢您的即时反馈。
    猜你喜欢
    • 2012-11-16
    • 2012-08-19
    • 2018-02-18
    • 2022-01-26
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多