ORDER BY¶
The ORDER BY
clause specifies the order of the rows in the output.
- Native nGQL: You must use a pipe (
|
) and anORDER BY
clause afterYIELD
clause.
- OpenCypher style: No pipes are permitted. The
ORDER BY
clause follows aRETURN
clause.
There are two order options:
ASC
: Ascending.ASC
is the default order.DESC
: Descending.
Native nGQL Syntax¶
<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¶
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¶
<RETURN clause>
ORDER BY <expression> [ASC | DESC] [, <expression> [ASC | DESC] ...];
Examples¶
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.
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 |
| __NULL__ | __NULL__ |
+-----------------+----------+
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 |
+-----------------+----------+
| __NULL__ | __NULL__ |
| "Manu Ginobili" | 41 |
| "Tony Parker" | 36 |
+-----------------+----------+
Last update:
October 24, 2023