8.2.3 Выражения Case

Cypher поддерживает выражения CASE, которые представляют собой обобщенные условные выражения, подобные операторам if/else в других языках. Имеется две формы выражения CASE  — простая и общая.

8.2.4 Простой CASE

Строковые литералы Выражение вычисляется и сравнивается в порядке следования предложений WHEN, пока не обнаружится совпадение. Если совпадений обнаружено не будет, используется предложение ELSE, или null, если предложение ELSE отсутствует.могут содержать следующие escape-последовательности.

Синтаксис:

CASE test
WHEN value THEN result
[WHEN ...]
[ELSE default]
END

Аргументы:

Запрос.

MATCH n
RETURN CASE n.eyes
WHEN 'blue'
THEN 1
WHEN 'brown'
THEN 2
ELSE 3 END AS result

Таблица 8.1 Результат

result
2
1
2
1
3

8.2.5 Общий CASE

Последовательно оцениваются предикаты, пока не будет получено значение true; возвращается соответствующее значение result. Если ни одно из сравнений не дает true, используется выражение в предложении ELSE, или же null, если предложение ELSE отсутствует.

Синтаксис:

CASE
WHEN predicate THEN result
[WHEN ...]
[ELSE default]
END

Аргументы:

Запрос

MATCH n
RETURN CASE
    WHEN n.eyes = 'blue'
THEN 1
WHEN n.age < 40
THEN 2
ELSE 3 END AS result

Таблица 8.2 Результат

result
3
1
2
1
3

Предыдущая | Следующая