标量函数是一种在单个输入值上操作并返回单个输出值的函数。这些函数广泛应用于数据处理和分析中,用于执行各种计算和转换任务。
id
id()
返回顶点或边的ID。
语法
id(expression)
返回值
Agtype整数。
参数
名称 | 描述 |
名称 | 描述 |
expression | 一个顶点或边的表达式。 |
示例
SELECT *
FROM cypher('graph_name', $$
MATCH (a)
RETURN id(a)
$$) as (id agtype);
返回结果如下:
id
--------
0
1
2
3
(4 rows)
start_id
start_id()
返回边的起始顶点的ID。
语法
start_id(expression)
返回值
Agtype整数。
参数
名称 | 描述 |
名称 | 描述 |
expression | 边表达式。 |
示例
SELECT *
FROM cypher('graph_name', $$
MATCH ()-[e]->()
RETURN start_id(e)
$$) as (start_id agtype);
返回结果如下:
id
--------
0
1
2
3
(4 rows)
end_id
end_id()
返回边的结束顶点的ID。
语法
end_id(expression)
返回值
Agtype整数。
参数
名称 | 描述 |
名称 | 描述 |
expression | 边表达式。 |
示例
SELECT *
FROM cypher('graph_name', $$
MATCH ()-[e]->()
RETURN end_id(e)
$$) as (end_id agtype);
返回结果如下:
id
--------
4
5
6
7
(4 rows)
type
type()
返回边类型的字符串表示。
语法
type(edge)
返回值
Agtype字符串。
参数
名称 | 描述 |
名称 | 描述 |
edge | 一个计算结果为边的表达式。 |
示例
SELECT *
FROM cypher('graph_name', $$
MATCH ()-[e]->()
RETURN type(e)
$$) as (type agtype);
返回结果如下:
type
-----------
"KNOWS"
"KNOWS"
(2 rows)
properties
properties()
用于返回包含顶点或边的所有属性的Agtype映射。如果参数已经是映射,则不作更改直接返回。
语法
properties(expression)
返回值
Agtype映射。
参数
名称 | 描述 |
名称 | 描述 |
expression | 一个顶点、一条边或一个Agtype映射的表达式。 |
注意事项
properties(null)
返回null
。
示例
SELECT *
FROM cypher('graph_name', $$
CREATE (p:Person {name: 'Stefan', city: 'Berlin'})
RETURN properties(p)
$$) as (properties agtype);
返回结果如下:
properties
--------------------------------------
{"city": "Berlin", "name": "Stefan"}
(1 row)
head
head()
返回Agtype列表中的第一个元素。
语法
head(list)
返回值
返回值的类型将是列表中第一个元素的类型。
参数
名称 | 描述 |
名称 | 描述 |
list | 一个列表的表达式。 |
注意事项
head(null)
返回null
。如果列表中的第一个元素是
null
,则head(list)
将返回null
。
示例
SELECT *
FROM cypher('graph_name', $$
MATCH (a)
WHERE a.name = 'Eskil'
RETURN a.array, head(a.array)
$$) as (lst agtype, lst_head agtype);
返回结果如下:
lst | lst_head
-------------------------+----------
["one","two","three"] | "one"
(1 row)
last
last()
返回Agtype列表中的最后一个元素。
语法
last(list)
返回值
返回值的类型将是列表中最后一个元素的类型。
参数
名称 | 描述 |
名称 | 描述 |
list | 一个列表的表达式。 |
注意事项
last(null)
返回null
。如果列表中的最后一个元素是
null
,则last(list)
将返回null
。
示例
SELECT *
FROM cypher('graph_name', $$
MATCH (a)
WHERE a.name = 'Eskil'
RETURN a.array, last(a.array)
$$) as (lst agtype, lst_tail agtype);
返回结果如下:
lst | lst_tail
-------------------------+----------
["one","two","three"] | "three"
(1 row)
length
length()
返回路径的长度。
语法
length(path)
返回值
Agtype整数。
参数
名称 | 描述 |
名称 | 描述 |
path | 路径的表达式。 |
注意事项
length(null)
返回null
。
示例
SELECT *
FROM cypher('graph_name', $$
MATCH p = (a)-[]->(b)-[]->(c)
WHERE a.name = 'Alice'
RETURN length(p)
$$) as (length_of_path agtype);
返回路径p
的长度。
length_of_path
----------------
2
2
2
(3 rows)
size
size()
返回列表的长度。
语法
size(list)
返回值
Agtype整数。
参数
名称 | 描述 |
名称 | 描述 |
list | 列表的表达式。 |
注意事项
size(null)
返回null
。
示例
SELECT *
FROM cypher('graph_name', $$
RETURN size(['Alice', 'Bob'])
$$) as (size_of_list agtype);
返回路径p
的长度。
size_of_list
--------------
2
(1 row)
startNode
startNode()
返回边的起始节点。
语法
startNode(edge)
返回值
一个顶点。
参数
名称 | 描述 |
名称 | 描述 |
edge | 边的表达式。 |
注意事项
startNode(null)
返回null
。
示例
SELECT *
FROM cypher('graph_name', $$
MATCH (x:Developer)-[r]-()
RETURN startNode(r)
$$) as (v agtype);
返回结果如下:
v
--------------------------------------------
Node[0]{name:"Alice",age:38,eyes:"brown"}
Node[0]{name:"Alice",age:38,eyes:"brown"}
(2 rows)
endNode
endNode()
返回边的结束节点。
语法
endNode(edge)
返回值
一个顶点。
参数
名称 | 描述 |
名称 | 描述 |
edge | 边的表达式。 |
注意事项
endNode(null)
返回null
。
示例
SELECT *
FROM cypher('graph_name', $$
MATCH (x:Developer)-[r]-()
RETURN endNode(r)
$$) as (v agtype);
返回结果如下:
v
--------------------------------------------
Node[2]{name:"Charlie",age:53,eyes:"green"}
Node[1]{name:"Bob",age:25,eyes:"blue"}
(2 rows)
timestamp
timestamp()
返回当前时间与1970年1月1日UTC午夜之间的差值,单位为毫秒。
语法
timestamp()
返回值
Agtype整数。
注意事项
timestamp()
在整个查询过程中会返回相同的值,即使对于长时间运行的查询也是如此。
示例
SELECT *
FROM cypher('graph_name', $$
RETURN timestamp()
$$) as (t agtype);
返回结果如下:
t
---------------
1613496720760
(1 row)
toBoolean
toBoolean()
将字符串值转换为布尔值。
语法
toBoolean(expression)
返回值
Agtype布尔值。
参数
名称 | 描述 |
名称 | 描述 |
expression | 布尔值或字符串值的表达式。 |
注意事项
toBoolean(null)
返回null
。如果表达式已经是布尔值,则直接返回该值,不做任何改变。
如果解析失败,返回
null
。
示例
SELECT *
FROM cypher('graph_name', $$
RETURN toBoolean('TRUE'), toBoolean('not a boolean')
$$) as (a_bool agtype, not_a_bool agtype);
返回结果如下:
a_bool | not_a_bool
--------+------------
true |
(1 row)
toFloat
toFloat()
将整数或字符串值转换为浮点数。
语法
toFloat(expression)
返回值
浮点数。
参数
名称 | 描述 |
名称 | 描述 |
expression | 一个Agtype数字或Agtype字符串值的表达式。 |
注意事项
toFloat(null)
返回null
。如果表达式是一个浮点数,则会原样返回。
如果解析失败,将返回
null
。
示例
SELECT *
FROM cypher('graph_name', $$
RETURN toFloat('11.5'), toFloat('not a number')
$$) as (a_float agtype, not_a_float agtype);
返回结果如下:
a_float | not_a_float
---------+-------------
11.5 |
(1 row)
toInteger
toInteger()
将浮点数或字符串值转换为整数值。
语法
toInteger(expression)
返回值
Agtype整数。
参数
名称 | 描述 |
名称 | 描述 |
expression | 一个Agtype数字或Agtype字符串值的表达式。 |
注意事项
toInteger(null)
返回null
。如果表达式是一个整数值,则会原样返回。
如果解析失败,将返回
null
。
示例
SELECT *
FROM cypher('graph_name', $$
RETURN toInteger('42'), toInteger('not a number')
$$) as (an_integer agtype, not_an_integer agtype);
返回结果如下:
an_integer | not_an_integer
------------+----------------
42 |
(1 row)
coalesce
coalesce()
返回给定表达式列表中的第一个非空值。
语法
coalesce(expression [, expression]*)
返回值
返回值的类型将是第一个非空表达式的类型。
参数
名称 | 描述 |
名称 | 描述 |
expression | 可能返回空值的表达式。 |
注意事项
如果所有参数都是空值,则返回null
。
示例
SELECT *
FROM cypher('graph_name', $$
MATCH (a)
WHERE a.name = 'Alice'
RETURN coalesce(a.hairColor, a.eyes), a.hair_color, a.eyes
$$) as (color agtype, hair_color agtype, eyes agtype);
返回结果如下:
color | hair_color | eyes
---------+------------+---------
"brown" | | "Brown"
(1 row)
- 本页导读 (1)
- id
- start_id
- end_id
- type
- properties
- head
- last
- length
- size
- startNode
- endNode
- timestamp
- toBoolean
- toFloat
- toInteger
- coalesce