模式
客户 - > (边缘)Ownes - >车辆{vehicle_number}
试图通过下面的数字来查询“拥有”车辆的客户记录并且它有效。 ('in'和'contains'都工作正常)
select from Customer where "KL-01-B-8898" in out("Ownes").vehicle_number
我想做同样的查询,但使用不区分大小写的搜索,如下所示,但返回'0'记录
select from Customer where "kl-01-b-8898" in out("Ownes").vehicle_number.toLowerCase()
我更改了下面的查询并返回了行。是否可以在上面的查询中使用像'toLowerCase'这样的函数,而不使用子选择?
select from Customer where @rid in (select in("Ownes").@rid from Vehicle where vehicle_number.toLowerCase() ="kl-01-b-8898")
答案 0 :(得分:1)
您可以使用:
select from Customer
let $a= ( select number.toUpperCase() from (select out("Ownes").vehicle_number as number from $parent.$current unwind number))
where "KL-01-B-8898" in first($a).number
这不起作用:
select from Customer where "kl-01-b-8898" in out("Ownes").vehicle_number.toLowerCase()
因为
out("Ownes").vehicle_number
返回String
列表这有效:
select from Customer where @rid in (select in("Ownes").@rid from Vehicle where vehicle_number.toLowerCase() ="kl-01-b-8898")
因为vehicle_number是一个字符串
请参阅文档:http://orientdb.com/docs/last/SQL-Methods.html#bundled-methods