Skip to content

ORDER BY

The ORDER BY clause specifies the order of the rows in the output.

  • Native nGQL: You must use a pipe (|) and an ORDER BY clause after YIELD clause.
  • OpenCypher style: No pipes are permitted. The ORDER BY clause follows a RETURN clause.

There are two order options:

  • ASC: Ascending. ASC is the default order.
  • DESC: Descending.

Native nGQL Syntax

ngql <YIELD clause> ORDER BY <expression> [ASC | DESC] [, <expression> [ASC | DESC] ...];

Compatibility

In the native nGQL syntax, $-. must be used after ORDER BY. But it is not required in releases prior to 2.5.0.

Examples

```ngql nebula> FETCH PROP ON player "player100", "player101", "player102", "player103" \ YIELD player.age AS age, player.name AS name \ | ORDER BY $-.age ASC, $-.name DESC; +-----+---------------------+ | age | name | +-----+---------------------+ | 32 | "Rudy Gay" | | 33 | "LaMarcus Aldridge" | | 36 | "Tony Parker" | | 42 | "Tim Duncan" | +-----+---------------------+

nebula> $var = GO FROM "player100" OVER follow \ YIELD dst(edge) AS dst; \ ORDER BY $var.dst DESC; +-------------+ | dst | +-------------+ | "player125" | | "player101" | +-------------+ ```

OpenCypher Syntax

ngql <RETURN clause> ORDER BY <expression> [ASC | DESC] [, <expression> [ASC | DESC] ...];

Examples

```ngql nebula> MATCH (v:player) RETURN v.player.name AS Name, v.player.age AS Age \ ORDER BY Name DESC; +-----------------+-----+ | Name | Age | +-----------------+-----+ | "Yao Ming" | 38 | | "Vince Carter" | 42 | | "Tracy McGrady" | 39 | | "Tony Parker" | 36 | | "Tim Duncan" | 42 | +-----------------+-----+ ...

In the following example, nGQL sorts the rows by age first. If multiple people are of the same age, nGQL will then sort them by name.

nebula> MATCH (v:player) RETURN v.player.age AS Age, v.player.name AS Name \ ORDER BY Age DESC, Name ASC; +-----+-------------------+ | Age | Name | +-----+-------------------+ | 47 | "Shaquille O'Neal" | | 46 | "Grant Hill" | | 45 | "Jason Kidd" | | 45 | "Steve Nash" | +-----+-------------------+ ... ```

Order of NULL values

nGQL lists NULL values at the end of the output for ascending sorting, and at the start for descending sorting.

```ngql nebula> MATCH (v:player{name:"Tim Duncan"}) --> (v2) \ RETURN v2.player.name AS Name, v2.player.age AS Age \ ORDER BY Age; +-----------------+--------------+ | Name | Age | +-----------------+--------------+ | "Tony Parker" | 36 | | "Manu Ginobili" | 41 | | "Spurs" | UNKNOWN_PROP | +-----------------+--------------+

nebula> MATCH (v:player{name:"Tim Duncan"}) --> (v2) \ RETURN v2.player.name AS Name, v2.player.age AS Age \ ORDER BY Age DESC; +-----------------+--------------+ | Name | Age | +-----------------+--------------+ | "Spurs" | UNKNOWN_PROP | | "Manu Ginobili" | 41 | | "Tony Parker" | 36 | +-----------------+--------------+ ```


Last update: January 13, 2022