将值作为JCR-SQL2查询中的双精度值进行比较

时间:2014-03-10 12:50:48

标签: comparison type-conversion jcr-sql2

我试图将JCR节点的string属性与JCR-SQL2中的double值进行比较。但它将值比较为string s。

例如:

SELECT * FROM [nodex] as x  where x.propertyY <= 20.50

此处propertyY是定义中的string

我用CASE尝试了这个但是它仍然不起作用。我可以在不更改属性定义的情况下将其与double进行比较吗?

1 个答案:

答案 0 :(得分:0)

标准JCR-SQL2有CAST(value AS DOUBLE)表达式,但不幸的是它只能在表达式的右侧使用。是的,JCR-SQL2并不像普通的SQL那么灵活。

据我所知,在运行比较之前,没有真正有效的标准方法将属性值转换为double。如果你将double值转换为字符串,你将得到一个词典比较 - 这当然不会非常有用。

我不确定其他实现,但是当属性是残留属性时,ModeShape会将属性值转换为double ,因为残余属性没有定义,因此没有类型。其他实现很可能不会像这样。