在Hive中运行以下代码时,出现以下错误:
04:08:12 [SELECT-0行,0.096秒] [代码:40000,SQL状态:42000]编译语句时出错:FAILED:SemanticException行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;
有人知道如何解决此错误吗?
谢谢!
答案 0 :(得分:1)
选择一种CASE语法,不要混用!
case EXPRESSION when EXPR_VALUE then OUT_VALUE
case when CONDITION then OUT_VALUE
因此,只需在CASE之后删除“ shipped_date”。