我在带有case-when子句的配置单元中遇到一个筛选器条件问题。以下是声明和错误:
声明:
select day
from db.tableName
where case when length(day) <> '19' then substr(day,1,19) else day end
错误:
org.apache.spark.sql.analysisexception:筛选器表达式“case when(not length(tablename。 day
)='19')然后是子字符串(tablename。 day
,1,19)else表名。 day
字符串类型的“end”不是布尔值。;;
如果我把case子句放进去 select
子句中,语句运行良好,但放入条件创建所述错误的位置。虽然我捕捉到的错误来自 Zeppelin
但同样的错误字符串类型不是布尔型是对的 Beeline
也。
关于这个问题有什么建议吗?
1条答案
按热度按时间xxslljrj1#
你的语法错了。这里不必使用where子句。
尝试以下操作: