原始值变量¶
原始值变量用于在 GQL 过程中存储值或在过程执行中传递值。原始值变量通过关键字VALUE声明。
Note
关键字VALUE也可用于定义聚合值变量和子查询表达式。在定义值变量(原始值变量和聚合值变量)时,关键字VALUE后跟变量名;在子查询值表达式中,其后跟子查询。关键字的含义取决于其使用的上下文。
原始值变量适用于持久图和临时图。它们可以在过程中的任何位置定义,但是必须在引用之前定义好。
语法¶
- primitive_value_variable_definition
primitive_value_variable_definition ::=
'VALUE' primitive_value_variable (('TYPED' | '::')? value_type)? ('=' value_expression)?
参数¶
primitive_value_variable¶
要定义的原始值变量的名称。primitive_value_variable可以是常规标识符或使用反引号(`)包围的分隔标识符。有关标识符的更多信息,请参见标识符命名规则。
value_type¶
该变量持有的值的数据类型。支持的数据类型包括数值、字符串、布尔值、时间和日期、向量、列表、集合、映射、记录。若未指定,则从值表达式中推断数据类型。
更多信息,请参见数据类型。
value_expression¶
指定该变量的初始值的值表达式。值表达式可以是常量、函数调用或返回单个值的子查询。若未指定,则变量的值自动设为null。
更多信息,请参见值表达式。
示例¶
以下示例基于示例数据集。
定义原始值变量¶
'''
VALUE a INT = 1
VALUE b::BOOL = true
VALUE c TYPED STRING = "hello"
VALUE d DOUBLE = 3.14
VALUE e LIST<DECIMAL(10, 4)> = [1.1, 2.2]
VALUE f = RECORD { x: 1, y: "test" }
VALUE g = DATE '2022-12-31'
VALUE h = DURATION 'P2M'
VALUE i = VECTOR<3,FLOAT>([0,1,0])
RETURN a, b, c, d, e, f, g, h, i
'''
返回:
+---+------+-------+------+-----------------+--------------+------------+-----+---------------+
| a | b | c | d | e | f | g | h | i |
+---+------+-------+------+-----------------+--------------+------------+-----+---------------+
| 1 | true | hello | 3.14 | [1.1000,2.2000] | {x:1,y:test} | 2022-12-31 | P2M | [0.0,1.0,0.0] |
+---+------+-------+------+-----------------+--------------+------------+-----+---------------+
使用表达式定义原始值变量¶
'''
VALUE numPerson = VALUE { USE movie MATCH (v:Person) return count(v) GROUP BY() }
VALUE numMovies = VALUE { USE movie MATCH (t:Movie) return count(t) GROUP BY() }
USE movie
LET numObjs = numPerson + numMovies
MATCH (t:Movie)-[e:WithGenre]->(v2:Genre) WHERE v2.id > 18000
RETURN numPerson, numMovies, numObjs, v2.id AS genreId
'''
返回:
+-----------+-----------+---------+---------+
| numPerson | numMovies | numObjs | genreId |
+-----------+-----------+---------+---------+
| 4064 | 245 | 4309 | 18385 |
| 4064 | 245 | 4309 | 18385 |
| 4064 | 245 | 4309 | 18385 |
| 4064 | 245 | 4309 | 18385 |
| 4064 | 245 | 4309 | 18305 |
+-----------+-----------+---------+---------+