条件表达式 (CASE)
本页介绍如何使用 Cypher Builder 在 Cypher® 中创建 CASE 表达式。
简单 CASE
简易 CASE 形式将单个表达式与多个值进行比较。可以通过将待比较的表达式作为构造函数参数传入 Case 类来构建。
const person = new Cypher.Node();
new Cypher.Case(person.property("eyes"))
.when(new Cypher.Literal("blue")).then(new Cypher.Literal(1))
.when(new Cypher.Literal("brown"), new Cypher.Literal("hazel")).then(new Cypher.Literal(2))
.else(new Cypher.Literal(3))
生成的 Cypher,注意 END 会自动添加。
CASE n.eyes
WHEN 'blue' THEN 1
WHEN 'brown', 'hazel' THEN 2
ELSE 3
END
通用 CASE
带有条件语句的通用 CASE 表达式可以通过不传入构造函数参数而使用 Case 类来构建。
const person = new Cypher.Node();
new Cypher.Case()
.when(Cypher.eq(person.property("eyes"), new Cypher.Literal("blue")))
.then(new Cypher.Literal(1))
.when(Cypher.lt(person.property("age"), new Cypher.Literal(40)))
.then(new Cypher.Literal(2))
.else(new Cypher.Literal(3))
生成的 Cypher,注意 END 会自动添加。
CASE
WHEN n.eyes = 'blue' THEN 1
WHEN n.age < 40 THEN 2
ELSE 3
END