2016-08-18 210 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