2016-08-22 2 views
1

J'ai créé la fonction définie par l'utilisateur fStringToDouble qui prend la chaîne comme argument et retourne double. Cette fonction définie par l'utilisateur fonctionne correctement dans une instruction select.Est-ce que Cassandra autorise la fonction définie par l'utilisateur dans la clause where?

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

Quand je mets cet utilisateur fonction définie dans la clause where, je reçois une erreur de syntaxe que "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; 

Quel est le problème avec la requête ci-dessus? Y at-il une fonction intégrée pour lancer String to Double à Cassandra?

Répondre

1

Vous ne pouvez pas utiliser la fonction définie par l'utilisateur dans les clauses WHERE mais uniquement certains opérateurs de requête de plage.

Si vous voulez en savoir plus sur ce que vous pouvez faire dans les clauses WHERE, vous pouvez jeter un oeil à cet article: http://www.datastax.com/dev/blog/a-deep-look-to-the-cql-where-clause