2016-08-18 91 views
0

架构使用功能与边缘滤波器

客户orientdb选择查询 - >(边)Ownes - >车辆{vehicle_number}

试图查询该客户记录谁 “Ownes” 车辆通过像下面的数字,它的工作。 (均为“中”和“包含”工作得很好)

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")[email protected] from Vehicle where vehicle_number.toLowerCase() ="kl-01-b-8898") 

回答

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 

返回字符串

列表

这工作:

select from Customer where @rid in (select in("Ownes")[email protected] from Vehicle where vehicle_number.toLowerCase() ="kl-01-b-8898") 

因为vehicle_number是一个String

参见文档:http://orientdb.com/docs/last/SQL-Methods.html#bundled-methods