- 精通Neo4j
- 龐國明等
- 542字
- 2023-07-17 19:01:15
3.3.15 ORDER BY語句
ORDER BY是緊跟RETURN或者WITH的子句,它指定了輸出的結果應該如何排序。
提示:提示:不能對節點或關系進行排序,只能對它們的屬性進行排序。ORDER BY依賴值的比較來排序,具體可參見3.2.5.8節。
在變量的范圍方面,ORDER BY遵循特定的規則,這取決于RETURN的投射或WITH語句是否聚合或者DISTINCT。如果它是一個聚合或者DISTINCT投射,那么只有投射中的變量可用。如果投射不修改輸出基數(聚合和DISTINCT做的),在投射之前可用的變量也可以用。當投射語句覆蓋了已存在的變量時,只有新的變量可用。如圖3-18所示為ORDER BY圖例。

圖3-18 ORDER BY圖例
3.3.15.1 根據屬性對節點進行排序
ORDER BY用于對輸出進行排序。
查詢:

結果將返回根據節點name屬性進行排序的節點序列。
結果:

3.3.15.2 根據多個屬性對節點進行排序
ORDER BY語句中支持根據多個屬性對節點進行排序。Cypher將先根據第一個變量進行排序,對于相等的值,然后再檢查ORDER BY中的下一個屬性值,以此類推。
查詢:

本例中先根據年齡排序,對于年齡相等的,再根據名字來排序。
結果:

3.3.15.3 節點降序排列
在排序的變量后面添加DESC[ENDING],Cypher將以逆序(即降序)對輸出進行排序。
查詢:

本例中根據節點的name降序排列這些節點。
結果:

3.3.15.4 空值的排序
當結果集中包含null值時,對于升序排列,null總是在結果集的末尾。而對于降序排序,null值總是排在最前面。
查詢:

結果將返回以length屬性排序的節點,沒有length屬性的節點將排在最后。
結果:

推薦閱讀
- ETL數據整合與處理(Kettle)
- Effective Amazon Machine Learning
- Visual Studio 2015 Cookbook(Second Edition)
- MySQL基礎教程
- 大數據:從概念到運營
- Scratch 3.0 藝術進階
- MySQL 8.x從入門到精通(視頻教學版)
- Hands-On Mathematics for Deep Learning
- 辦公應用與計算思維案例教程
- 云數據中心網絡與SDN:技術架構與實現
- Hadoop大數據開發案例教程與項目實戰(在線實驗+在線自測)
- 數據庫原理與應用
- Power BI智能數據分析與可視化從入門到精通
- Mastering LOB Development for Silverlight 5:A Case Study in Action
- 數據分析師養成寶典