如何使orientDB避免null

时间:2015-11-30 05:49:56

标签: orientdb

当我执行下面的代码时,

select expand(distinct(@rid)) from (
  select from V
  where @rid = 'number not exist'
)

它返回

OCommandExecutionException:
     expression item '@rid' cannot be resolved because current record is NULL

此内部选择仅用于测试,并且不返回任何记录。

如果select没有返回记录,我希望返回nullexpand(distinct(@rid))如果select返回一些@rid

环境是OrientDB 2.1.5,它出现在控制台和工作室中。

谢谢!

3 个答案:

答案 0 :(得分:1)

您的查询在2.1.7版中正常运行:

Leaflet.print

答案 1 :(得分:0)

您可以创建一个简单的javascript函数,如下所示

var g=orient.getGraph();
var b=g.command("sql","select from V where @rid = #12:0");
if(b.length>0){
    var c=g.command("sql","select expand(distinct(@rid)) from ( select from V where @rid = #12:0)");
    return c;
}
else
  return null;

并从控制台或工作室调用

select expand(result) from (select yourFunction() as result)

答案 2 :(得分:0)

你可以这样做:

--first-parent

如果存在则会扩展记录,否则返回空。