CASE表达式

    CASE表达式会遍历所有条件,并在满足第一个条件时停止读取后续条件,然后返回结果。如果不满足任何条件,将通过ELSE子句返回结果。如果没有ELSE子句且不满足任何条件,则返回NULL

    Caution

    1. nebula> RETURN \
    2. CASE 2+3 \
    3. WHEN 4 THEN 0 \
    4. ELSE -1 \
    5. END \
    6. +--------+
    7. | result |
    8. +--------+
    9. | 1 |
    10. +--------+
    1. CASE
    2. WHEN <condition> THEN <result>
    3. [WHEN ...]
    4. [ELSE <default>]
    5. END
    参数说明
    condition如果条件condition为true,表示满足此条件。
    resultcondition为true,则返回此result
    default如果没有条件匹配,则返回该default
    1. nebula> MATCH (v:player) WHERE v.age > 30 \
    2. RETURN v.name AS Name, \
    3. ELSE "No" \
    4. END \
    5. AS Starts_with_T;
    6. +---------------------+---------------+
    7. | Name | Starts_with_T |
    8. +---------------------+---------------+
    9. | "Tim" | "Yes" |
    10. +---------------------+---------------+
    11. | "LaMarcus Aldridge" | "No" |
    12. +---------------------+---------------+
    13. | "Tony Parker" | "Yes" |
    14. +---------------------+---------------+

    为了避免误用简单形式和通用形式,用户需要了解它们的差异。请参见如下示例:

    示例本意为当玩家年龄大于35时输出Yes。但是查看输出结果,年龄为36时输出的却是No

    • $$.player.age的值为36,数据类型为int。