【发布时间】:2017-10-23 11:17:10
【问题描述】:
我正在尝试通过合并其他 3 个表来覆盖一个表。方式如下:
- 我将从 table1 中取出所有列
- 我将只从 table2 中取出两列
- 我将根据表 3 中某列的值添加一个新列
三个表:table1、table2 和 table3 有作为 key id
这是我正在尝试的查询(到目前为止,我正在尝试没有INSERT OVERWRITE TABLE final_table,只是使用 SELECT 来查看将插入表中的结果)
--INSERT OVERWRITE TABLE final_table
select
t1.*,
t2.field1,
t2.field2,
CASE WHEN ( t3.indicator = 'F' OR
t3.indicator = 'O'
) THEN 'Y' ELSE 'N' END AS new_field3
from
table1 t1
LEFT OUTER JOIN table2 t2
ON (t1.id = t2.id)
LEFT OUTER JOIN table3 t3
ON (t1.id = t3.id);
但在CASE WHEN 中出现以下错误:
编译语句时出错:FAILED: SemanticException [Error 10002]:第 7:17 行无效的列引用“new_field3”
我做错了什么?
【问题讨论】: