【发布时间】:2019-02-07 14:37:11
【问题描述】:
SELECT * FROM 表名 其中 1=1 (AND COL1=VALUE1 AND COL2=VALUE2) --->$(VAR)
SELECT * FROM 表名 其中 1=1 $(VAR)
这在 Hive 中可行吗?
【问题讨论】:
标签: hive
SELECT * FROM 表名 其中 1=1 (AND COL1=VALUE1 AND COL2=VALUE2) --->$(VAR)
SELECT * FROM 表名 其中 1=1 $(VAR)
这在 Hive 中可行吗?
【问题讨论】:
标签: hive
是的,有可能。
set hivevar:var1='and col1=10 and col2=10';
! echo "select * from table where 1=1 ${hivevar:var1}";
select ${hivevar:var1}
[prjai@lnx0689 prvys]$ hive -f test.hql
"select * from table where 1=1 'and col1=10 and col2=10'"
OK
and col1=10 and col2=10
Time taken: 2.152 seconds, Fetched: 1 row(s)
有关如何使用 hivevar 和 hiveconf 的更多详细信息,请参阅 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+VariableSubstitution
【讨论】:
先设置hive变量变量。
set hivevar:queryPortion='and col1=value1 and col2=value2';
然后在您的查询中检索它
select * from table where 1=1 ${queryPortion}
【讨论】: