0

在此处输入图像描述

我在 Postgresql 中有 3 个表。我有一个表 C,其中我想要表 A 中的结果。如果表 A 中的区域值为空/空白,那么我需要表 B 中的区域值。如何在 Postgresql 中加入这些值?或者如何在 Talend 中做到这一点?

4

2 回答 2

0

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

于 2016-02-04T13:25:55.970 回答
0

这样的事情怎么样?

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

它将所有表格压缩在一起并选择首选行,然后丢弃到空行。COALESCE将从其参数中选择第一个非空值。

于 2016-02-04T06:35:00.797 回答