假设您有以下查询:
OPTIONAL MATCH (a:A)-[aff:AFFECTS]->(prd:Product { name:"name1" })
WHERE aff.versionStart <= "10.1.1" <= aff.versionEnd
RETURN a
这可以很好地工作,但我的问题是我并不总是拥有versionEnd
属性,所以在这些情况下,我只想检查aff.versionStart <= "10.1.1"
,同时如果它存在,则检查aff.versionStart <= "10.1.1" <= aff.versionEnd
。有什么方法可以做到这一点吗?
因为我知道我可以使用IS NOT NULL
来检查它是否存在,但我还没有想好如何说“如果它不是空的,那么使用它,否则跳过它”
3条答案
按热度按时间lb3vh1jj1#
您可以使用
COALESCE()
并提供一个您确信WHERE
子句的第二部分返回TRUE的值jhiyze9q2#
Coalesce()更易于编写和理解。如果您想要一个Case When Else语句,那么它就是
d6kp6zgx3#
这就是这样做的方式,如果它只存在,那么它将被使用,否则将被忽略: