我创建了用户定义的函数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?
答案 0 :(得分:1)
您不能在WHERE子句中使用用户定义的函数,只能使用某些范围的查询运算符。
如果您想了解有关WHERE子句中可以执行的操作的更多信息,可以查看以下帖子:http://www.datastax.com/dev/blog/a-deep-look-to-the-cql-where-clause