Source: https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/expressions/case/ Documentation version: v5.3.2 # 条件表达式 条件表达式根据一个或多个条件的真假返回一个值。 系统会从上而下逐个检查`WHEN`条件,一旦找到一个条件为真(`TRUE`),就会返回对应的`THEN`子句中的值。如果所有条件都为假(`FALSE`)或未知(`UNKNOWN`),则返回`ELSE`子句中的值。如果没有指定`ELSE`子句,则返回`NULL`。 在 GQL 中,`coalesce()`函数等同于条件表达式。此函数返回表达式列表中第一个非`NULL`值。如果列表中的所有值都评估为`NULL`,则该函数返回`NULL`。 ## 语法 语法图源码 case_value_expression ```` case_value_expression ::= 'CASE' ( 'WHEN' search_condition 'THEN' value_expression )+ ( 'ELSE' value_expression )? 'END' | 'coalesce' '(' value_expression ( ',' value_expression )+ ')' ```` ## 参数 ### `search_condition` 结果为布尔类型值的条件。 - 如果值为真值,则返回相应的`THEN`子句中的`value_expression`。 - 如果值为假值或者未知,则检查下一个`search_condition`。 ### `value_expression` 结果为值的表达式。有关更多信息,请参见[值表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/#_6)。 ## 示例 ### 比较一组值 ```` ''' FOR a IN LIST[1,2,3,4,5,6,7,8,9,10] RETURN CASE WHEN a<4 THEN false WHEN a>5 THEN true END AS case_value ''' ```` 返回: ```` +------------+ | case_value | +------------+ | false | | false | | false | | null | | null | | true | | true | | true | | true | | true | +------------+ ```` ### 使用`coalesce()`返回第一个非`NULL`值 ```` RETURN coalesce(NULL, 1, 2, 3, 4, 5) AS a ```` 返回: ```` +---+ | a | +---+ | 1 | +---+ ````