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

时间:2016-08-22 19:48:05

标签: cassandra cql cqlsh cassandra-3.0

我创建了用户定义的函数fStringToDouble,它将字符串作为参数并返回double。这个用户定义的函数在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?

1 个答案:

答案 0 :(得分:1)

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

如果您想了解有关WHERE子句中可以执行的操作的更多信息,可以查看以下帖子:http://www.datastax.com/dev/blog/a-deep-look-to-the-cql-where-clause