如果参数尚未设置
,我想使用参数的默认值 e.g。 hive -d param1=2014-06-20
我可以检索该值,即
hive> select '${param1}';
OK
2014-06-20
但是对于尚未设置的变量,结果为
hive> select '${param2}';
OK
${param2}
我原本期望null等等
最终我想为参数使用默认值(如果尚未传入),例如
SELECT * FROM test_table t
WHERE t.date < COALESCE(${param1}, CURRENT_DATE)
答案 0 :(得分:1)
似乎没有直接记录的方法来执行此操作,但可以测试参数值,如果值等于名称,则返回默认值。即。
hive> select if(locate('${par', '${param2}')==0, '${param2}', CURRENT_DATE);
OK
2018-03-09