在apachebeam中进行sql转换时如何将int转换为boolean

o2rvlv0m  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(400)

我正在尝试使用calcite sql语法对apachebeam进行sql转换。我在做一个int到boolean的转换。我的sql如下所示:

,CASE WHEN cast(IsService as BOOLEAN) THEN CASE WHEN IsEligible THEN 1 ELSE 0 END ELSE NULL END AS Reported

其中isservice是指示符int,iseligible是布尔值。
根据文档,从int到boolean的显式转换是可以的。但是,在运行管道时出现以下错误:

Caused by: org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.sql.validate.SqlValidatorException: Cast function cannot convert value of type INTEGER to type BOOLEAN

有人能解释我为什么会出错吗?

5cg8jx4n

5cg8jx4n1#

要立即解决您的问题,您可以使用 IsService > 0 而不是 CAST . 在我看来,这是更清楚的转换是什么。我不喜欢依赖“虚假”的价值观。

相关问题