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

条件表达式

条件表达式根据一个或多个条件的真假返回一个值。

系统会从上而下逐个检查WHEN条件,一旦找到一个条件为真(TRUE),就会返回对应的THEN子句中的值。如果所有条件都为假(FALSE)或未知(UNKNOWN),则返回ELSE子句中的值。如果没有指定ELSE子句,则返回NULL。

在 GQL 中,coalesce()函数等同于条件表达式。此函数返回表达式列表中第一个非NULL值。如果列表中的所有值都评估为NULL,则该函数返回NULL。

语法

case_value_expression
CASE WHEN search_condition THEN value_expression ELSE value_expression END coalesce ( value_expression , 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

结果为值的表达式。有关更多信息,请参见值表达式。

示例

比较一组值

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