如何进行 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
列名也可以参数化:
在我的 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
列名也可以参数化: