列为空或 null 然后从其他 table 获取值

Column empty or null then fetch value from other table

我在 Postgresql 中有 3 个表。我有一个 Table C,其中我想要 来自 Table A 的结果。如果区域的值来自 null/blank Table A 然后我需要来自 Table B 的区域值。我如何加入这些 在 PostgreSQL 中?或者如何在 Talend 中完成?

这样的怎么样?

SELECT * FROM (
  SELECT COALESCE(ta.country, tb.country) as country, tc.region 
  FROM tb
  FULL OUTER JOIN (
    SELECT country, region FROM tablec
  ) tc ON tc.country = tb.country
  FULL OUTER JOIN (
    SELECT country, region FROM tablea
  ) ta ON ta.country = tb.country
) WHERE country IS NOT NULL AND region IS NOT NULL

它将所有表格压缩在一起,select 首选行然后丢弃到空行。 COALESCE 将 select 来自其参数的第一个非空值。

在 Talend 中,您可以使用 tMap 组件,其中主要输入是来自 TableA 的行,而 TableC 是一个查找 table。在输出端,您可以为区域列定义以下内容: StringUtils.convertEmptyToNull(mainrow.region) != null ? mainrow.region : lookuprow:region