hive 如何使用条件语句根据结果执行不同的查询

Posted

技术标签:

【中文标题】hive 如何使用条件语句根据结果执行不同的查询【英文标题】:hive How to use conditional statements to execute different query based on result 【发布时间】:2020-03-03 07:15:17 【问题描述】:

我有查询select col1, col2 from view1,我只想在(select columnvalue from table1) > 0 时执行,否则什么都不做。

if (select columnvalue from table1)>0 
                   select col1, col2 from view1" 
                  else 
                      do thing

如何在单个配置单元查询中实现这一点?

【问题讨论】:

问题是关于 Spark 还是 Hive? 【参考方案1】:

如果检查查询返回标量值(单行),那么您可以与检查结果交叉连接并使用 > 0 条件进行过滤:

 with check_query as (
 select count (*) cnt 
 from table1
 )

 select *   
 from view1 t
      cross join check_query c
  where c.cnt>0
 ;

【讨论】:

以上是关于hive 如何使用条件语句根据结果执行不同的查询的主要内容,如果未能解决你的问题,请参考以下文章

如何根据不同的条件执行不同的SQL语句

如何用sqlmap写入文件步骤

sql语句查询,根据一个表中一个列,该列在两个不同条件同时满足的查询结果

对sql语句的查询结果按条件显示不同的颜色

Hive优化的原则参考

mysql同一个表中如何根据不同的条件将查询到的记录放到一个结果集中