database - 我无法在 Neo4j 中将以下代码更改为 if-else 条件
问题描述
我是 Neo4j 的新手,并试图将 ScoreFT[0] 与 ScoreFT[1] 进行比较,并得到 Neo4j 中更大的值。我尝试过一次,但没有奏效。我不知道使用 order by和最后一个代码中的限制(返回案例)。请帮助我。
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
解决方案
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, ...
推荐阅读
- javascript - 为什么我设置的音频 currentTime 总是发出音频结束事件?
- r - 从另一个列表中的列表中的每个列表中提取相同的项目
- python - Extracting values from a list of dicts based another value in python3
- node.js - How do I merge an array of Observables with RxJS 6.x and Node.js?
- c++ - 如何使用函数创建线程:C++
- python - 在 for 循环中多次替换字母
- curl - 使用 cURL 的 Cisco ACI 身份验证不起作用
- java - itext7的PdfReader在java中不起作用
- c++ - 如何从文件中读取内容并将内容存储在动态二维数组中并以网格格式显示?
- opencv3.0 - 如何去除图片中的手写内容?