条件表达式¶
条件表达式根据一个或多个条件的真假返回一个值。
系统会从上而下逐个检查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¶
结果为值的表达式。有关更多信息,请参见值表达式。
示例¶
比较一组值¶
'''
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 |
+---+