Neo4j CQL在MATCH命令中提供了“ORDER BY”子句,对MATCH查询返回的结果进行排序。
我们可以按升序或降序对行进行排序。默认情况下,它按升序对行进行排序。 如果我们要按降序对它们进行排序,我们需要使用DESC子句。
ORDER BY子句语法
ORDER BY property-name-list [DESC] | 语法元素 | 描述 |
|---|---|
| ORDER BY | Neo4j CQL 关键字 |
| property-name-list | 需要排序的属性列表 |
| DESC | 降序(specify descending order)可选项 |
语法:
node-label-name.property1-name,
node-label-name.property2-name,
....
node-label-name.propertyn-name 语法说明:
| 语法元素 | 描述 |
|---|---|
| node-label-name | 它是节点的标签名称。 |
| property-name | 它是节点的属性名称。 |
注意 -
我们应该使用逗号(,)运算符来分隔属性名列表。
ORDER BY是紧跟RETURN或者WITH的子句,它指定了输出的结果应该如何排序。
根据属性对节点进行排序
ORDER BY用于对输出进行排序。
| MATCH (n)RETURN n.nameORDER BY n.name |
|---|
返回了根据节点name属性进行排序的节点序列。
根据多个属性对节点进行排序
ORDER BY语句中支持根据多个属性对节点进行排序。Cypher将先根据第一个变量进行排序,对于相等的值,然后再检查 ORDER BY中的下一个属性值,依次类推。
| MATCH (n)RETURN n.born, n.nameORDER BY n.born, n.name |
|---|
节点降序排列
在排序的变量后面添加DESC[ENDING],Cypher将以逆序(即降序)对输出进行排序。
| MATCH (n)RETURN nORDER BY n.name DESC |
|---|
空值的排序
当结果集中包含null值时,对于升序排列,null总是在结果集的末尾。而对于降序排序,null值总是排在最前面。
| MATCH (n)RETURN n.title, nORDER BY n.title |
|---|
本例中返回了以length属性排序的节点,没有length属性的节点排在最后。
例如:
演示如何按照升序排序“员工名称”结果。
MATCH (emp:Employee)
RETURN emp.empid,emp.name,emp.salary,emp.deptno
ORDER BY emp.name例如:
演示如何按照员工名称按降序使用排序结果。
MATCH (emp:Employee)
RETURN emp.empid,emp.name,emp.salary,emp.deptno
ORDER BY emp.name DESC
评论列表(0条)