Cassandra 是否允许用户在 where 子句中定义函数?

Does Cassandra allow user defined function in where clause?

我创建了用户定义的函数 fStringToDouble,它将字符串作为参数,returns 双精度。这个用户定义的函数在 select 语句中工作正常。

SELECT applieddatetime, fStringToDouble(variablevalue)  from my_table WHERE locationid='xyz' and applieddatetime >= '2016-08-22' AND applieddatetime < '2016-08-23' ;

当我将这个用户定义的函数放在 where 子句中时,出现语法错误 "no viable alternative at input"

SELECT applieddatetime from my_table WHERE locationid='xyz' and applieddatetime >= '2016-08-22' AND applieddatetime < '2016-08-23'and fStringToDouble(variablevalue)<6.0;

以上查询有什么问题?在 Cassandra 中是否有任何内置函数可以将 String 转换为 Double?

您不能在 WHERE 子句中使用用户定义的函数,只能使用某些范围查询运算符。

如果您想了解更多有关 WHERE 子句中可以做什么的信息,可以查看此 post:http://www.datastax.com/dev/blog/a-deep-look-to-the-cql-where-clause