ORDER BY¶
The ORDER BY clause specifies the order of the rows in the output.
- Native nGQL: You must use a pipe (
|) and anORDER BYclause afterYIELDclause.
- OpenCypher style: No pipes are permitted. The
ORDER BYclause follows aRETURNclause.
There are two order options:
ASC: Ascending.ASCis 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 | +-----------------+--------------+ ```