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

LET

LET语句用于声明可以在后续语句中使用的变量。

LET语句通过在当前语句的输出表上新增列来定义变量。LET语句声明的变量必须包含在RETURN语句中,才能在跟随RETURN语句的NEXT关键字后的语句中使用。更多信息,请参见语句块。

语法

let_statement
LET variable_name = value_expression , variable_name = value_expression

let_statement ::=
    'LET' variable_name '=' value_expression (',' variable_name '=' value_expression)*

参数

variable_name

声明的变量名称。名称可以是常规标识符或使用反引号(`)包围的分隔标识符。名称必须是唯一的。有关标识符的更多信息,请参见命名标识符规则。

value_expression

一个常量或值表达式,其计算结果赋值给声明的变量。该值可以是任何数据类型。有关更多信息,请参见值表达式。

示例

以下示例基于示例数据集。

使用常量值定义变量

'''
LET a = 1, b = 2, c = 3 
RETURN a, b, c
'''

返回:

+---+---+---+
| a | b | c |
+---+---+---+
| 1 | 2 | 3 |
+---+---+---+

通过多条LET构建依赖

'''
LET a = 1 + 2, b = 3 + 4 
LET c = a + b 
RETURN a, b, c
'''

返回:

+---+---+----+
| a | b | c  |
+---+---+----+
| 3 | 7 | 10 |
+---+---+----+

使用点属性定义变量

'''
USE movie 
MATCH (v@Actor) WHERE v.id = 199 
LET a = v.name, b = upper(a) 
RETURN b
'''

返回:

+--------------+
| b            |
+--------------+
| JULIE KAVNER |
+--------------+

使用子查询定义变量

'''
LET a = VALUE { USE movie MATCH (v@Actor) WHERE v.id = 199 RETURN v.name LIMIT 1 } 
RETURN a
'''

返回:

+--------------+
| a            |
+--------------+
| Julie Kavner |
+--------------+

在后续语句中使用变量

'''
USE movie 
LET a = 199 
RETURN a 
NEXT 
USE movie 
MATCH (v WHERE v.id = a) RETURN v
'''

返回:

+--------------------------------------------------------------------------------------------+
| v                                                                                          |
+--------------------------------------------------------------------------------------------+
| (289113618996264961@Movie:Movie{id:199,name:"Star Trek: First Contact"})                   |
| (288832144019554307@User:Person{id:199})                                                   |
| (288269194066132994@Actor_renamed:Person{birthDate:1951-09-07,id:199,name:"Julie Kavner"}) |
+--------------------------------------------------------------------------------------------+