2017-07-25 53 views
0

我有2個OrientDB問題。如何在SQL查詢中調用SQL函數

  1. 比如我有函數調用GETALL

    「SELECT FROM V其中name =:名稱」

我希望以檢索結果簡單的SQL查詢 東西liket他

SELECT type FROM (getAll("Test")) 

我該如何做到這一點?

  1. 是否可以根據以前的查詢使用新參數運行新的SQL SELECT查詢? 對於實施例

    SELECT $ C FROM V LET $ A =(SELECT FROM V WHERE NAME = '測試1'), $ B =(SELECT FROM V WHERE類型= '的Type1'), $ C =( SELECT FROM V其中type = $ B和名稱= $ A)

這種情況是工作,但需要花費大量的時間(因爲我明白這是因爲它運行在v的所有內容)

提前致謝。

回答

2

要調用函數試試這個:

SELECT getAll("Test") 

這樣,你只檢索RID,如果你希望所有的屬性試試這個:如果你想只檢索類型

SELECT expand(getAll("Test")) 

屬性,你可以做到這一點在兩個方面:

  1. select type from(SELECT expand(getAll("Test")))
  2. 修改以這種方式SELECT type FROM V WHERE name = :name

關於第二個問題,你的作用是相當密切的,我只是修改它一點點:

SELECT $C FROM V 
LET $A = (SELECT FROM V WHERE name = 'Test1') , 
$B = (SELECT FROM V WHERE type = 'Type1') , 
$C = (SELECT FROM V WHERE type contains $B.type and name contains $A.name) 

希望它可以幫助

問候