Hive案例声明参数类型不匹配

问题描述 投票:0回答:1

当我在Hive中运行以下代码时出现以下错误:

04:08:12 [SELECT - 0 rows,0.096 secs] [代码:40000,SQL状态:42000]编译语句时出错:FAILED:SemanticException Line 0:-1参数类型不匹配''2018-02-14'': WHEN之后的表达式应该与CASE之后的表达式相同:“date”是预期的,但是找到“boolean”

Select
            case shipped_date
                    when shipped_date between cast ('2018-02-01' as date) and cast ('2018-02-14' as date) then 1
                    when shipped_date between cast ('2018-02-18' as date) and cast( '2018-03-03'as date) then 2
                    when shipped_date between cast ('2017-02-01' as date) and cast ('2017-02-14'as date) then 3
                    when shipped_date between cast ('2017-03-12' as date) and cast ('2017-03-25' as date) then 4
                    when shipped_date between cast('2018-04-30' as date) and cast ('2018-05-13'as date) then 5
                    when shipped_date between cast ('2018-03-27' as date) and cast('2018-04-09'as date) then 6
                    when shipped_date between cast('2017-04-28'as date) and cast ('2017-05-14'as date) then 7
                    when shipped_date between cast ('2017-03-26' as date) and cast ('2017-04-11' as date) then 

            end as test_period,department_name
            from my_table;

有谁知道如何解决此错误?

谢谢!

date types hive case mismatch
1个回答
1
投票

选择一种CASE语法,不要混合使用!

case EXPRESSION when EXPR_VALUE then OUT_VALUE

case when CONDITION then OUT_VALUE

因此,只需在CASE后删除“shipped_date”即可。

© www.soinside.com 2019 - 2024. All rights reserved.