如何使用条件语句执行(或绕过)hive/sql中的代码块?

svujldwt  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(701)

例如,我知道如何在配置单元中使用条件语句为变量赋值

CASE WHEN expression = condition1 THEN result1
     WHEN expression = condition2 THEN result2
     ...
     ELSE result
END;

现在我想使用条件语句来决定是否执行一段代码。当我尝试应用上述方法时,它失败了。例如,

CASE WHEN (expression = condition1 or expression = condition2) 
     THEN
          CREATE TABLE table1;
          CREATE TABLE table2;
          CREATE TABLE table3;
     END;

我收到一条错误信息 FAILED: ParseException line 5:0 cannot recognize input near 'CASE' 'WHEN' '(' .
是否可以使用条件语句来执行/绕过代码块?谢谢!

8ftvxx2r

8ftvxx2r1#

我建议您创建空表,然后进行多个插入,例如。,

from source_table
insert overwrite
 table first_table
select column1, column2
 where column1 = 'something'
insert overwrite
 table second_table
select column1, column2
 where column1 = 'something_else'
;

有关此处插入和此处创建表的详细信息

3df52oht

3df52oht2#

不能将配置单元中的条件语句与ddl一起使用https://cwiki.apache.org/confluence/display/hive/languagemanual+ddl

相关问题