8.4. Generic CASE
The predicates are evaluated in order until a true value is found, and the result value is used. If no match is found the expression in the ELSE
clause is used, or null
, if no ELSE
case exists.
Syntax:
CASE WHEN predicate THEN result [WHEN ...] [ELSE default] END
Arguments:
- predicate: A predicate that is tested to find a valid alternative.
- result: This is the result expression used if the predicate matches.
- default: The expression to use if no match is found.
Query.
MATCH n RETURN CASE WHEN n.eyes = 'blue' THEN 1 WHEN n.age < 40 THEN 2 ELSE 3 END AS result
Result
result |
---|
5 rows |
|
|
|
|
|
Try this query live. create (_0 {`age`:54, `eyes`:"brown", `name`:"Daniel"}) create (_1:`Spouse` {`age`:41, `array`:["one", "two", "three"], `eyes`:"blue", `name`:"Eskil"}) create (_2:`foo`:`bar` {`age`:38, `eyes`:"brown", `name`:"Alice"}) create (_3 {`age`:25, `eyes`:"blue", `name`:"Bob"}) create (_4 {`age`:53, `eyes`:"green", `name`:"Charlie"}) create _2-[:`KNOWS`]->_3 create _2-[:`KNOWS`]->_4 create _3-[:`KNOWS`]->_0 create _3-[:`MARRIED`]->_1 create _4-[:`KNOWS`]->_0 match n return CASE WHEN n.eyes = 'blue' THEN 1 WHEN n.age < 40 THEN 2 ELSE 3 END as result