【发布时间】:2019-11-05 15:09:32
【问题描述】:
我只是想了解使用 OR 条件连接 2 个表背后的概念。 我的要求是:我需要在 Table1.colA = Table2.colB 列上加入 2 个表 Table1 [colA, colB] 和 Table2 [colX, colY] 但如果 colA 为 NULL,则条件应该是 Table1.colB = Table2.colY。
我需要单独加入它们然后再合并吗?或者有没有一种方法可以让我一次加入?请注意,我在两个表及其左连接中都有数百万条记录,并且这些表位于 HIVE 中。我没有可重复的例子,只是试图理解这个概念。
【问题讨论】:
-
您可能可以使用几个 case 语句,例如您的连接表达式可能是
on case when IsNull(colA) then colB else colA end = case when IsNull(colA) then colY else colX end这可能会导致性能问题,但正如您所说,您有数百万条记录。