LET¶
LET语句用于声明可以在后续语句中使用的变量。
LET语句通过在当前语句的输出表上新增列来定义变量。LET语句声明的变量必须包含在RETURN语句中,才能在跟随RETURN语句的NEXT关键字后的语句中使用。更多信息,请参见语句块。
语法¶
- let_statement
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"}) |
+--------------------------------------------------------------------------------------------+