条件表达式 (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
© . This site is unofficial and not affiliated with Neo4j, Inc.