【问题标题】:Case-When table name in HiveHive 中的 Case-When 表名
【发布时间】:2017-01-11 01:31:30
【问题描述】:

如何在 Hive SELECT 查询中使用 CASE WHEN 表名?

我想做点事情——

SELECT col1, col2 
FROM
  CASE ${PARAM}
    WHEN 'val1' THEN table1
    WHEN 'val2' THEN table2

【问题讨论】:

  • 我不认为这是任何 SQL 风格的有效语法。
  • 你能否详细描述一下你的情况,因为这种方法在语法上是错误的。 Case When Then 只能用在 Select 子句中。
  • @RajatMishra 我想根据我的配置单元脚本中的输入参数从不同的源表生成输出。我完全理解我描述的语法无效,但我的问题是可以使用什么有效的配置单元语法来实现目标。

标签: hive


【解决方案1】:

这是可能的。像这样重写您的查询:

SELECT col1, col2 FROM table1 WHERE '${PARAM}' = 'val1' --only one subquery will be executed
union all
SELECT col1, col2 FROM table2 WHERE '${PARAM}' = 'val2' 

【讨论】:

  • 非常感谢您的回复。我会采用这种方法。
猜你喜欢
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
  • 2016-01-14
  • 1970-01-01
  • 1970-01-01
  • 2018-02-01
  • 2012-09-20
  • 1970-01-01
相关资源
最近更新 更多