• YIELD 子句、语句
    • 作为子句
    • 作为语句
      • 引用输入或者变量
      • 作为独立的语句
    • 注意事项

    YIELD 子句、语句

    YIELD 关键字可以在 FETCH、GO 语句中作为子句使用,也可以在 PIPE 中作为独立的语句使用,同时可以作为用于计算的单句使用。

    作为子句

    1. YIELD
    2. [DISTINCT]
    3. <col_name> [AS <col_alias>]
    4. [, <col_name> [AS <col_alias>] ...]

    常用于返回由 GO(详情请参阅 GO 用法)语句生成的结果。

    1. nebula> GO FROM 201 OVER relations_edge YIELD $$.student.name AS Friend, \
    2. $$.student.age AS Age, $$.student.gender AS Gender
    3. =========================
    4. | Friend | Age | Gender |
    5. =========================
    6. | Jane | 17 | female |
    7. -------------------------

    例如, .student.name 用来获取目标点()的属性。

    作为语句

    引用输入或者变量

    • 可以在 PIPE 中使用 YIELD 语句。
    • 可以用于引用变量。
    • 对于那些不支持 YIELD 子句的语句,可以使用 YIELD 语句作为一个工具,控制输出。
    1. YIELD
    2. [DISTINCT]
    3. <col_name> [AS <col_alias>]
    4. [, <col_name> [AS <col_alias>] ...]
    5. [WHERE <conditions>]
    1. nebula> GO FROM 201 OVER like YIELD like._dst AS id | YIELD $-.* WHERE $-.id == 200;
    2. =========
    3. | $-.id |
    4. =========
    5. | 200 |
    6. ---------
    7. nebula> $var2 = GO FROM 200 OVER like;$var1 = GO FROM 201 OVER like;YIELD $var1.* UNION YIELD $var2.*;
    8. ===================
    9. | $var1.like._dst |
    10. ===================
    11. | 200 |
    12. -------------------
    13. | 201 |
    14. -------------------
    15. | 202 |
    16. -------------------

    作为独立的语句

    • YIELD 语句可以独立使用,用于一些简单的计算。您可以使用 AS 重命名返回的列。
    1. nebula> YIELD 1 + 1
    2. =========
    3. | (1+1) |
    4. =========
    5. | 2 |
    6. ---------
    7. nebula> YIELD "Hel" + "\tlo" AS HELLO_1, ", World!" AS WORLD_2
    8. ======================
    9. | HELLO_1 | WORLD_2 |
    10. ======================
    11. | Hel lo | , World! |
    12. ----------------------
    13. nebula> YIELD hash("Tim") % 100
    14. =====================
    15. | (hash("Tim")%100) |
    16. =====================
    17. | 42 |
    18. ---------------------

    注意事项

    • DISTINCT

    不支持 YIELD DISTINCT 在单句中使用

    1. nebula> YIELD DISTINCT 1 --- 语法错误