Skip to content
Blog

Case Expression

The CASE expression is used to define conditional logic, similar to how if statements work in programming languages. There are two variants of conditional expressions in Cypher:

  1. Simple form which compares an expression against multiple expressions
  2. General form with multiple conditional statements.

Simple form

In the simple form, input is compared against each WHEN in order until a match is found. If no match is found, the expression in the ELSE is returned. If there is no ELSE, NULL is returned.

Syntax

CASE input
WHEN expr THEN result
[WHEN ...]
[ELSE expr]
END

Example:

MATCH (a:User) RETURN
CASE a.age
WHEN 50 THEN a.name
END AS x;

Output:

---------
| x |
---------
| |
---------
| |
---------
| Zhang |
---------
| |
---------

General form

In the general form, conditional statements are evaluated in order until a true statement is found. If no match is found, the expression in the ELSE is returned. If there is no ELSE, NULL is returned.

Syntax

CASE
WHEN expr THEN result
[WHEN ...]
[ELSE expr]
END

Example:

MATCH (a:User) RETURN
CASE
WHEN a.age < 50 THEN a.name
ELSE 'dummy'
END AS x;

Output:

-----------
| x |
-----------
| Adam |
-----------
| Karissa |
-----------
| dummy |
-----------
| Noura |
-----------