官术网_书友最值得收藏!

3.3.18 WITH語句

WITH語句將分段的查詢部分連接在一起,查詢結果從一部分以管道形式傳遞給另外一部分作為開始點。

使用WITH可以在將結果傳遞到后續(xù)查詢之前對結果進行操作。操作可以是改變結果的形式或者數(shù)量。WITH的一個常見用法就是限制傳遞給其他MATCH語句的結果數(shù)。通過結合ORDER BY和LIMIT,可獲取排在前面的X個結果,從而實現(xiàn)分頁效果。

另一個用法就是在聚合值上過濾。WITH用于在WHERE斷言中引入聚合。這些聚合表達式創(chuàng)建了新的結果綁定字段。WITH也能像RETURN一樣對結果使用別名作為綁定名。WITH還可以用于將圖的讀語句和更新語句分開,查詢中的每一部分要么只是讀取,要么都是寫入。當寫部分的語句是基于讀語句的結果時,這兩者之間的轉換必須使用WITH。

WITH圖例如圖3-21所示。

圖3-21 WITH圖例

3.3.18.1 過濾聚合函數(shù)結果

聚合的結果必須通過WITH語句傳遞才能進行過濾。

查詢:

查詢返回與David相連的人,且該人至少有一個外向關系。

結果:

3.3.18.2 在collect前對結果排序

可以在將結果傳遞給collect函數(shù)之前對結果進行排序,這樣就可以返回排過序的列表。

查詢:

列表中的人名以倒序排列,并且數(shù)量限制為3。

結果:

3.3.18.3 限制路徑搜索的分支

可以限制匹配路徑的數(shù)量,然后以這些路徑為基礎再做任何類似的有限制條件的搜索。

查詢:

先以Anders開始找到與之相連的所有節(jié)點,然后按名字倒序排列得到排第一個的節(jié)點,然后再以該節(jié)點為基礎,找到與之相連的所有節(jié)點,最后返回它們的名字。

結果:

主站蜘蛛池模板: 克东县| 奇台县| 长葛市| 岐山县| 宁乡县| 瓦房店市| 巴彦县| 大关县| 松阳县| 庆阳市| 井冈山市| 峨边| 龙岩市| 连城县| 新化县| 鹤山市| 云阳县| 旬阳县| 左贡县| 南部县| 格尔木市| 吴堡县| 东兴市| 乡城县| 崇阳县| 无锡市| 寿阳县| 渝北区| 东港市| 搜索| 靖边县| 娄底市| 左云县| 哈密市| 怀安县| 彭水| 岳阳县| 普兰店市| 来宾市| 阿荣旗| 万宁市|