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
我创建了用户定义的函数 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