如何进行 Hive SQL IF/ELSE 查询?

How to do Hive SQL IF/ELSE query?

在我的 Hive SQL 脚本中我想做的:

如果{$user_choice = 1} SELECT a,b,c 来自表 1; 别的 SELECT 来自表 1 的 d、e、f;

其中user_choice是查询为运行时Hive提示输入的参数。

请问正确的语法是什么?或者,如果我想错了,还有其他方法可以实现同样的目标吗?

我正在尝试通过 Hue 编辑器执行此操作,如果这会产生影响的话。 谢谢

如果列类型相同,可以在Hive中使用CASE语句或UNION ALL:

SELECT 
      case when ${user_choice} = 1 the a else d end col1 
      case when ${user_choice} = 1 the b else e end col2 
      case when ${user_choice} = 1 the c else f end col3 
  FROM table1;

SELECT  a, b, c FROM table1 WHERE ${user_choice} = 1
UNION ALL
SELECT  d, e, f FROM table1 WHERE ${user_choice} = 2

如果列的数据类型不同,或者脚本完全不同,则从 shell

调用配置单元
if if [[ ${user_choice}  == "1" ]] ; then 
  hive -e "query one"
else 
  hive -e "query two" 
fi

列名也可以参数化: