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

3.2.2 表達(dá)式

3.2.2.1 概述

Cypher中的表達(dá)式如下:

● 十進(jìn)制(整型和雙精度型)的字面值:13、-4000、3.14、6.022E23。

● 十六進(jìn)制整型字面值(以0x開頭):0x13zf、0xFC3A9、-0x66eff。

● 八進(jìn)制整型字面值(以0開頭):01372、02127、-05671。

● 字符串字面值:'Hello'、"World"。

● 布爾字面值:true、false、TRUE、FALSE。

● 變量:n、x、rel、myFancyVariable、`A name with weird stuff in it[]!`。

● 屬性:n.prop、x.prop、rel.thisProperty、myFancyVariable. `(weird property name)`。

● 動(dòng)態(tài)屬性:n["prop"]、rel[n.city + n.zip]、map[coll[0]]。

● 參數(shù):$param、$0。

● 表達(dá)式列表:['a', 'b']、[1, 2, 3]、['a', 2, n.property, $param]、[ ]。

● 函數(shù)調(diào)用:length(p)、nodes(p)。

● 聚合函數(shù):avg(x.prop)、count(*)。

● 路徑-模式:(a)-->()<--(b)。

● 計(jì)算式:1 + 2 and 3 < 4。

● 返回true或者false的斷言表達(dá)式:a.prop = 'Hello'、length(p) >10、exists(a.name)。

● 正則表達(dá)式:a.name =~ 'Tob.*'。

● 大小寫敏感的字符串匹配表達(dá)式:a.surname STARTS WITH 'Sven'、a.surname ENDS WITH'son' or a.surname CONTAINS 'son'。

● CASE表達(dá)式。

3.2.2.2 轉(zhuǎn)義字符

Cypher中的字符串可以包含的轉(zhuǎn)義字符如表3-1所示。

表3-1 Cypher中的字符串可以包含的轉(zhuǎn)義字符

3.2.2.3 Case表達(dá)式

Cypher支持Case條件表達(dá)式,它類似于其他語(yǔ)言中的if/else語(yǔ)句。

1.簡(jiǎn)單的Case表達(dá)式

計(jì)算表達(dá)式的值,然后依次與WHEN語(yǔ)句中的表達(dá)式進(jìn)行比較,直到匹配上為止。如果未匹配上,則ELSE中的表達(dá)式將作為結(jié)果。如果ELSE語(yǔ)句不存在,那么將返回null。

語(yǔ)法:

參數(shù):

● test:一個(gè)有效的表達(dá)式。

● value:一個(gè)表達(dá)式,它的結(jié)果將與test表達(dá)式的結(jié)果進(jìn)行比較。

● result:如果value表達(dá)式能夠與test表達(dá)式匹配,則它將作為結(jié)果表達(dá)式。

● default:沒有匹配的情況下的默認(rèn)返回表達(dá)式。

查詢:

結(jié)果:

2.一般的Case表達(dá)式

按順序判斷斷言,直到找到true為止,然后對(duì)應(yīng)的結(jié)果被返回。如果沒有找到,就返回ELSE的值。如果沒有ELSE語(yǔ)句,則返回null。

語(yǔ)法:

參數(shù):

● predicate:判斷的斷言,以找到一個(gè)有效的可選項(xiàng)。

● result:如果predicate匹配到,result就作為結(jié)果表達(dá)式。

● default:沒有匹配到情況下,默認(rèn)返回表達(dá)式。

查詢:

結(jié)果:

主站蜘蛛池模板: 西城区| 衡阳县| 海南省| 越西县| 仁化县| 江口县| 怀来县| 贵南县| 湘西| 田林县| 红河县| 察哈| 图们市| 和龙市| 平顺县| 库伦旗| 香格里拉县| 富阳市| 江都市| 大同市| 故城县| 九江县| 德保县| 策勒县| 商洛市| 稷山县| 蓝田县| 宜阳县| 逊克县| 碌曲县| 重庆市| 察隅县| 漳州市| 诏安县| 克什克腾旗| 广东省| 敦化市| 邵武市| 泰安市| 曲水县| 鄂托克旗|