Source: https://dev-docs.nebula-graph.io/v5.3.2/database-gql-reference/dql/primitive-result/ Documentation version: v5.3.2 # Primitive result statement The primitive result statement defines the final output behavior of a linear query: - Return data, optionally with paging. - Or end the query directly without returning data. ## Syntax diagramsource primitive_result ```` primitive_result ::= return_statement paging_statement? | FINISH ```` ## Parameters ### `return_statement` Selects query results or performs aggregation on the query results. For more information, see [RETURN statement](https://dev-docs.nebula-graph.io/v5.3.2/database-gql-reference/dql/return/). ### `paging_statement` Splits the query result dataset into discrete subsets, or pages. For more information, see [Paging statements](https://dev-docs.nebula-graph.io/v5.3.2/database-gql-reference/dql/order-by-page/). ### `FINISH` The `FINISH` clause ends the query without returning query data. ## Examples ### Return distinct results with paging ```` ''' LET nums = LIST[5, 3, 1, 4, 2, 2] FOR i IN nums RETURN DISTINCT i AS num ORDER BY num ASC OFFSET 1 LIMIT 2 ''' ```` The preceding statement first expands the list `nums`, then uses `RETURN DISTINCT` to return unique results, and applies `ORDER BY` and `OFFSET` for paging. Finally, it returns the first 2 rows of the remaining result set. Return: ```` +-----+ | num | +-----+ | 2 | | 3 | +-----+ ```` ### End a query without returning data ```` ''' LET nums = LIST[1, 2, 3] FOR n IN nums FINISH ''' ```` The preceding statement first expands the list `nums`, then uses `FINISH` to end the query directly without returning any data. ### Finish an inline procedure ```` ''' LET a = 1 CALL { LET b = a + 1 FINISH } RETURN a ''' ```` The preceding statement first defines the variable `a`, then calls an inline procedure. Inside that procedure, `FINISH` ends the procedure without returning any inner result, so the final result contains only `a` from the outer query. Return: ```` +---+ | a | +---+ | 1 | +---+ ````