在两个表之间查询,合并结果。Postgresql
这是我的设想: 表1: 表2: 输出:在两个表之间查询,合并结果。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中可能有
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
;