Graph 在cypher查询中将数据加载到neo4j in case语句时出错
尝试使用查询中的case语句上载Graph 在cypher查询中将数据加载到neo4j in case语句时出错,graph,neo4j,cypher,Graph,Neo4j,Cypher,尝试使用查询中的case语句上载CSV数据,但出现以下错误: cypher: USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM 'file:///test.csv' as line MATCH(a:test_t{tid:line.pid}) CASE WHEN line.key !='NA' THEN WITH split(line.key,",") as name UNWIND name as x MERGE(k:te
CSV
数据,但出现以下错误:
cypher:
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///test.csv' as line
MATCH(a:test_t{tid:line.pid})
CASE
WHEN line.key !='NA' THEN
WITH split(line.key,",") as name
UNWIND name as x
MERGE(k:test_key{key_term:toLower(x)})
MERGE(a)-[:contains]->(k)
END
错误
Neo.ClientError.Statement.SyntaxError:无效输入'S':应为'l/l'(第5行第3列(偏移量:137))
“案例”
有人能帮我吗?您不正确地使用了
案例。CASE语句中不能包含update子句。相反,您可以使用WHERE
子句来过滤文件的行。例如,添加WHERE line.key!='NA'
在您移动到更新之前处理文件时将起作用。像这样的东西应该合适
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///test.csv' as line
MATCH (a:test_t {tid: line.pid})
WITH line
WHERE line.key <> 'NA'
WITH split(line.key, ",") as name
UNWIND name as x
MERGE (k:test_key {key_term: toLower(x)})
MERGE (a)-[:contains]->(k)
您不正确地使用了案例。CASE语句中不能包含update子句。相反,您可以使用WHERE
子句来过滤文件的行。例如,添加WHERE line.key!='NA'
在您移动到更新之前处理文件时将起作用。像这样的东西应该合适
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///test.csv' as line
MATCH (a:test_t {tid: line.pid})
WITH line
WHERE line.key <> 'NA'
WITH split(line.key, ",") as name
UNWIND name as x
MERGE (k:test_key {key_term: toLower(x)})
MERGE (a)-[:contains]->(k)
CASE
子句不支持嵌入其他Cypher子句(但它可以调用函数)。事实上,用例实际上并不需要CASE
子句
此查询应该可以工作(neo4j 4.0+中需要开头的:auto
:
CASE
子句不支持嵌入其他Cypher子句(但它可以调用函数)。事实上,用例实际上并不需要CASE
子句
此查询应该可以工作(neo4j 4.0+中需要开头的:auto
:
:auto USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///test.csv' as line FIELDTERMINATOR ';'
WITH line
WHERE line.key <> 'NA'
MATCH (a:test_t {tid: line.pid})
UNWIND split(line.key, ',') as x
MERGE (k:test_key {key_term: TOLOWER(x)})
MERGE (a)-[:contains]->(k)
pid;key
123;NA
234;Foo,Bar
345;Bar,Baz
456;NA
567;Baz