Cypher的一般表达式
- 数字表达式
- 科学计数法的数字表达式
- 。。。。上一节中所有可以构成表达式的数据类型
- 一个变量 n, x, rel, `A name with weird stuff in it[]!
- 一个属性 n.prop, x.prop, rel.thisProperty, myFancyVariable.
(weird property name)
. - 一个动态属性 n[“prop”], rel[n.city + n.zip], map[coll[0]].
- 一个参数 $param, $0.
- 一个List [‘a’, ‘b’], [1, 2, 3], [‘a’, 2, n.property, $param], [].
- 一个函数调用 length(p ), nodes(p )
- 统计函数 avg(x.prop), count(*)
- 一个Path (a)-[r]->(b), (a)-[r]-(b), (a)–(b), (a)–>()<–(b)
其他表达式构成
CASE表达式:
case简单形式
CASE test
WHEN value THEN result
[WHEN ...]
[ELSE default]
END
这里的[]表示可以有也可以没有,其他字段的意思如下:
通过上面的式子进行条件判断,相当于是Cypher中的if…else语句。计算表达式,并按顺序与WHEN子句进行比较,直到找到匹配项。如果未找到匹配项,ELSE则返回子句中的表达式。但是,如果没有ELSEcase 并且没有找到匹配项,null则会返回,下面举一个例子
按照眼睛颜色的不同输出不同的结果
MATCH (n)
RETURN
CASE n.eyes
WHEN 'blue' THEN 1
WHEN 'brown' THEN 2
ELSE 3
END AS result
case的通用形式:
case的通用形式允许把不同的表达式设置为判断条件,而不是只进行值的判断,如下:
MATCH (n)
RETURN
CASE
WHEN n.eyes = 'blue' THEN 1
WHEN n.age < 40 THEN 2
ELSE 3
END AS result