我创建了用户定义的函数fStringToDouble
,它将字符串作为参数并返回 double 。这个用户定义的函数在 select 语句中工作得很好。
SELECT applieddatetime, fStringToDouble(variablevalue) from my_table WHERE locationid='xyz' and applieddatetime >= '2016-08-22' AND applieddatetime < '2016-08-23' ;
当我将此用户定义的函数放入 where 子句中时,我收到语法错误 “输入时没有可行的替代方案”
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 子句中可以执行的操作,可以查看这篇文章:http://www.datastax.com/dev/blog/a-deep-look-to-the-cql-where-clause
关于cassandra - Cassandra 是否允许在 where 子句中使用用户定义的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39087585/