AGE不支持在Cypher中直接编写SQL。但可以通过定义自定义函数,编写SQL查询并在Cypher命令中调用它们。
创建函数
CREATE OR REPLACE FUNCTION public.get_event_year(name agtype) RETURNS agtype AS $$
SELECT year::agtype
FROM history AS h
WHERE h.event_name = name::text
LIMIT 1;
$$ LANGUAGE sql;
查询:
SELECT * FROM cypher('graph_name', $$
MATCH (e:event)
WHERE e.year < public.get_event_year(e.name)
RETURN e.name
$$) as (n agtype);
返回结果如下:
n
-------------------
"Apache Con 2021"
(1 row)
该文章对您有帮助吗?