Source: https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/dql/let/ Documentation version: v5.3.2 # LET `LET`语句用于声明可以在后续语句中使用的变量。 `LET`语句通过在当前语句的输出表上新增列来定义变量。`LET`语句声明的变量必须包含在`RETURN`语句中,才能在跟随`RETURN`语句的`NEXT`关键字后的语句中使用。更多信息,请参见[语句块](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/statement-block/)。 ## 语法 语法图源码 let_statement ```` let_statement ::= 'LET' variable_name '=' value_expression (',' variable_name '=' value_expression)* ```` ## 参数 ### `variable_name` 声明的变量名称。名称可以是常规标识符或使用反引号(```)包围的分隔标识符。名称必须是唯一的。有关标识符的更多信息,请参见[命名标识符规则](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/overview/keywords-identifiers/)。 ### `value_expression` 一个常量或值表达式,其计算结果赋值给声明的变量。该值可以是任何数据类型。有关更多信息,请参见[值表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/)。 ## 示例 以下示例基于[示例数据集](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/overview/example-dataset/)。 ### 使用常量值定义变量 ```` ''' 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"}) | +--------------------------------------------------------------------------------------------+ ````