我在 Postgresql 中有 3 个表。我有一个表 C,其中我想要表 A 中的结果。如果表 A 中的区域值为空/空白,那么我需要表 B 中的区域值。如何在 Postgresql 中加入这些值?或者如何在 Talend 中做到这一点?
问问题
153 次
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 回答