CASE表达式

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

    Caution

    1. nebula> RETURN \
    2. CASE 2+3 \
    3. WHEN 5 THEN 1 \
    4. ELSE -1 \
    5. AS result;
    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. CASE \
    2. WHEN v.name STARTS WITH "T" THEN "Yes" \
    3. ELSE "No" \
    4. END \
    5. AS Starts_with_T;
    6. +---------------------+---------------+
    7. | Name | Starts_with_T |
    8. +---------------------+---------------+
    9. | "Tim" | "Yes" |
    10. | "LaMarcus Aldridge" | "No" |
    11. | "Tony Parker" | "Yes" |
    12. +---------------------+---------------+

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

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

    • $$.player.age > 35的值为,数据类型为boolean。