在两个表之间查询,合并结果。Postgresql

在两个表之间查询,合并结果。Postgresql,sql,postgresql,Sql,Postgresql,这是我的设想: 表1: 表2: 输出: id value 1 x 2 o 3 z 我需要从两个表中提取值并合并结果。 如果Tab1中包含Tab2中的ID,我需要在输出中替换该值。以下是以下查询的示例: SELECT Tab1.id, CASE WHEN Tab2.value IS NULL THEN Tab1.value ELSE Tab2.value END FROM Tab1 LEFT JOIN Tab2 ON Tab1.id = Tab2.id 如果Tab2中可能有

这是我的设想:

表1:

表2:

输出:

id  value
1   x
2   o
3   z
我需要从两个表中提取值并合并结果。 如果Tab1中包含Tab2中的ID,我需要在输出中替换该值。

以下是以下查询的示例:

SELECT Tab1.id, CASE WHEN Tab2.value IS NULL THEN Tab1.value ELSE Tab2.value END
FROM Tab1 
LEFT JOIN Tab2 ON Tab1.id = Tab2.id  
如果
Tab2
中可能有不在
Tab1
中的记录,则可以使用以下()命令:

以下是有关以下查询的详细信息:

SELECT Tab1.id, CASE WHEN Tab2.value IS NULL THEN Tab1.value ELSE Tab2.value END
FROM Tab1 
LEFT JOIN Tab2 ON Tab1.id = Tab2.id  
如果
Tab2
中可能有不在
Tab1
中的记录,则可以使用以下()命令:


这是一个完美的解决方案!谢谢。这是一个完美的解决方案!谢谢
SELECT Tab1.id, CASE WHEN Tab2.value IS NULL THEN Tab1.value ELSE Tab2.value END
FROM Tab1 
LEFT JOIN Tab2 ON Tab1.id = Tab2.id  
SELECT CASE WHEN Tab1.id IS NULL THEN Tab2.id ELSE Tab1.id END,
       CASE WHEN Tab2.value IS NULL THEN Tab1.value ELSE Tab2.value END
FROM Tab1 
FULL JOIN Tab2 ON Tab1.id = Tab2.id;
SELECT COALESCE(Tab2.id, Tab1.id) AS id, 
       COALESCE(Tab2.value, Tab1.value) AS tvalue
FROM Tab1 
FULL JOIN Tab2 ON Tab1.id = Tab2.id;
SELECT Tab1.id
 , COALESCE(Tab2.value, Tab1.value ) AS the_value
FROM Tab1 
LEFT JOIN Tab2 ON Tab1.id = Tab2.id
    ;