跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

原始值变量

原始值变量用于在 GQL 过程中存储值或在过程执行中传递值。原始值变量通过关键字VALUE声明。

Note

关键字VALUE也可用于定义聚合值变量和子查询表达式。在定义值变量(原始值变量和聚合值变量)时,关键字VALUE后跟变量名;在子查询值表达式中,其后跟子查询。关键字的含义取决于其使用的上下文。

原始值变量适用于持久图和临时图。它们可以在过程中的任何位置定义,但是必须在引用之前定义好。

语法

primitive_value_variable_definition
VALUE primitive_value_variable TYPED :: value_type = value_expression

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   |
+-----------+-----------+---------+---------+