2013-07-30 2 views
0

Я хочу, чтобы мой запрос, возвращающий что-то вроде этого:Как вернуть одно свойство ИЛИ в Cypher?

n.property1? OR n.property2? as columnName 

Прецедент является то, что у меня есть два разных узла архетипы возвращающимся в одном запросе, один тип узлов не имеют свойство2, а другой Безразлично» t имеет свойство1, но для достижения той же цели, и мне нужно, чтобы они возвращались под тем же именем столбца. (Например, если человек может ввести только домашний номер телефона (n.home) или номер сотового телефона (n.cell), но вы хотите, чтобы он возвращался в качестве телефона (n.home? OR n.cell? Как телефон).

Есть ли способ достичь этого?

ответ

5
COALESCE(n.property1?, n.property2?) as columnName 

вернется property1, если он существует еще свойство2

+0

Есть ли необходимость для '?' 'На n.property1' в' COALESCE'? – Nicholas

+0

Подумайте, если у вас его нет, вы получите ошибку «свойство не существует на узле» – Luanne

+0

Да, вам нужно? Попробуйте START n = node: node_auto_index (name = 'Neo') MATCH n- [r: KNOWS *] - m RETURN coalesce (n.age, m.years?) AS age at http: //console.neo4j. org – Luanne

Смежные вопросы