[12屆 鐵人賽] [Day16] Cypher 語法簡介 Part7 : Cypher 的最後來講一些函數吧 === ###### tags: `iT鐵人賽` `Neo4j` ## 前情提要 今天上班的時候老闆突然問起我跟的另一個同事的鐵人賽寫得如何 然後又說要來拜讀一下我們的文章,一整個危到不行 我現在非常懷疑 20 多天前的我為什麼要訂這個主題 非常懷疑要寫什麼 XD ## Functions Cypher 的 Functions 大概分成下面幾種 * Predicate functions * 回傳布林值的類型 * Scalar functions * 回傳單一值的類型 * Aggregating functions * 加總相關的函數 * List functions * 回傳清單中的資料的類型 * Mathematical functions * 數學運算相關的類型 * String functions * 字串相關的類型 * Temporal functions * 處理日期相關格式的類型 * Spatial functions * 空間座標相關的類型 * 之後寫 Spatial 的那篇會提 * User-defined functions * 使用者自訂的函數 * 我不會寫這個,如看到了就是我沒東西寫了 * LOAD CSV functions * 匯入 CSV 相關的函數 * 我不會寫這個,如看到了就是我沒東西寫了 今天就依 Spatial 類型前的那幾個,看一看有紀錄意義的就寫上來吧 ## Scalar functions ### coalesce() ```sql coalesce(expression [, expression]*) ``` 回傳資料中第一個不是空的資料 例: ```sql MATCH (n) RETURN coalesce(n.Name) ``` ### startNode() & endNode() 取得一段關係的起始節點或結束節點 例: ```sql MATCH ()-[r]-() RETURN startNode(r) ``` ## Aggregating functions ### collect() ``` collect(expression) ``` 將資料轉成陣列型式 (List) | 正常的回傳結果 | 加上Collect的結果 | | -------- | -------- | |  |  | ## List functions ### nodes() & relationships() 取得一坨資料的節點或關係 例: ```sql MATCH p=()-[]-() RETURN nodes(p) ``` ## String functions ### ltrim() & rtrim() & trim() 清空字串中的空白字元 * ltrim --> 左空白 * rtrim --> 右空白 * trim --> 左右空白 --- 沒了 我很抱歉 看起來都沒什麼特別的 ( ˘・з・) 讓我水一下啦,真的沒空阿,拜託啦 下三篇預計要講兩個好用的 Plugins 內容就會豐富起來了,還剛好中秋假期 大家中秋節快樂~~ (ノ>ω<)ノ 都過一半了 該換 ED 了 下篇 **Neo4j Plugins - 強大的 APOC & GDS** 究竟鐵人賽能不能完賽呢,讓我們繼續看下去 --- ## 參考資料 [Neo4j Cypher Manual](https://neo4j.com/docs/cypher-manual/current/) (書) [Neo4j 大事典:圖形資料庫&大數據時代](https://www.books.com.tw/products/0010813100) ## 紀錄 撰寫日期:2020/09/29 耗時: 1 小多
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up