Я не могу изменить следующий код в условие if-else в Neo4j - PullRequest
0 голосов
/ 09 января 2019

Я новичок в Neo4j и пытаюсь сравнить ScoreFT [0] с ScoreFT [1] и получить то значение, которое больше в Neo4j. Я пробовал один раз, но это не сработало. У меня нет идеи используйте порядок и предел в последнем коде (возвратный регистр). Пожалуйста, помогите мне.

Round,Date,Team1,FT,HT,Team2
1,(Fri) 11 Aug 2017 (32),Arsenal FC,4-3,2-2,Leicester City FC
1,(Sat) 12 Aug 2017 (32),Brighton & Hove Albion FC,0-2,0-0,Manchester City FC
1,(Sat) 12 Aug 2017 (32),Chelsea FC,2-3,0-3,Burnley FC
1,(Sat) 12 Aug 2017 (32),Crystal Palace FC,0-3,0-2,Huddersfield Town AFC
1,(Sat) 12 Aug 2017 (32),Everton FC,1-0,1-0,Stoke City FC
1,(Sat) 12 Aug 2017 (32),Southampton FC,0-0,0-0,Swansea City AFC
1,(Sat) 12 Aug 2017 (32),Watford FC,3-3,2-1,Liverpool FC
1,(Sat) 12 Aug 2017 (32),West Bromwich Albion FC,1-0,1-0,AFC Bournemouth
1,(Sun) 13 Aug 2017 (32),Manchester United FC,4-0,1-0,West Ham United FC
1,(Sun) 13 Aug 2017 (32),Newcastle United FC,0-2,0-0,Tottenham Hotspur FC

Запрос на импорт

Попытка с if / else

1 Ответ

0 голосов
/ 10 января 2019

CASE будет работать только с одним значением, но вы пытаетесь использовать несколько значений здесь на основе сравнения, и еще хуже, вы пытаетесь получить один CASE для вывода нескольких переменных, что не будет работать.

Было бы лучше сначала получить нужные значения в составной структуре (либо в списках из 2 элементов, либо на карте), а затем использовать два CASE для получения правильного значения для каждой переменной. Как то так, заменив свой ВОЗВРАТ:

...
WITH [t1.key, ScoreFT[0]] as t1Score, [t2.key, ScoreFT[1]] as t2Score, ScoreFT[0] > ScoreFT[1] as t1Won
RETURN CASE WHEN t1Won THEN t1Score ELSE t2Score END as s, 
       CASE WHEN t1Won THEN t2Score ELSE t1Score END as p

Если вы хотите вместо этого карту, вы можете создать ее явно вместо использования списков:

WITH t1 {.key, score:ScoreFT[0]} as t1Score, t2 {.key, score:ScoreFT[1]} as t2Score, ...
...