【问题标题】:Hive CASE WHEN THEN ISSUE [closed]蜂巢案例当时的问题[关闭]
【发布时间】:2019-11-07 18:28:29
【问题描述】:

以下是 Hive 中失败的代码:

(无法识别 6:5 (END) 处的别名)

INSERT INTO WRKT_REGULATORY_COMPONE_RECLASS
select
case
when WRKT_REGULATORY_COMPONENT_FINAL.REVENUE_FLAG != 'Y'
AND WRKT_REGULATORY_COMPONENT_FINAL.EXCLUDED_FLAG = 'Y'
THEN WRKT_REGULATORY_COMPONE_RECLASS.EXECUTION_ORDER = '1'
END
FROM WRKT_REGULATORY_COMPONENT_FINAL

【问题讨论】:

  • Hive 是否需要列别名?试试END AS EXECUTION_ORDER 之类的。
  • 另外,你可能想要一个ELSE 在某个地方。 ELSE 0 或许?
  • 谢谢雅各布,我尝试了这两种方法,但没有成功。解决后我会更新。
  • 您要插入新行还是更新现有行?
  • 代码现在正在运行:插入wrkt_regulatory_compone_reclass(execution_order)select(execution_order_component_final.revenent_flag!='y'和wrkt_regulatory_component_final.excluded_flag ='y'然后'1'结束)作为execution_ordult_frkt_regulatory_component_final

标签: mysql sql hive hiveql ziparchive


【解决方案1】:

这个:THEN WRKT_REGULATORY_COMPONE_RECLASS.EXECUTION_ORDER = '1'错了 在 THEN 之后应该是文字 1 或列

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    相关资源
    最近更新 更多