0

我正在尝试将 JCR 节点的string属性与doubleJCR-SQL2 中的值进行比较。但它将值作为strings 进行比较。

例如:

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

propertyYstring定义中的。

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

4

1 回答 1

0

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

据我所知,在运行比较之前,实际上并没有一种有效的标准方法可以将属性值转换为双精度值。如果你将双精度值转换为字符串,你会得到一个字典比较——这当然不是很有用。

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

于 2014-03-10T14:12:05.080 回答