标量函数

更新时间:2025-01-09 07:26:39

标量函数是一种在单个输入值上操作并返回单个输出值的函数。这些函数广泛应用于数据处理和分析中,用于执行各种计算和转换任务。

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()返回当前时间与197011UTC午夜之间的差值,单位为毫秒。

语法

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