当我在Hive中运行下面的代码时,我收到以下错误:
04:08:12 [选择 - 0 行,0.096 秒] [代码:40000,SQL 状态:42000] 编译语句时出错:失败:语义异常行 0:-1 参数类型不匹配 "2018-02-14":WHEN 后面的表达式应与 CASE 之后的表达式具有相同的类型:"日期"是预期的,但找到了"布尔值"
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;
有谁知道如何解决此错误?
谢谢!
选择一个 CASE 语法,不要同时使用两者!
case EXPRESSION when EXPR_VALUE then OUT_VALUE
case when CONDITION then OUT_VALUE
因此,只需在CASE之后删除"shipped_date"。