Sql server SQL Server图形表-在某些节点中导航以查找结束

Sql server SQL Server图形表-在某些节点中导航以查找结束,sql-server,sql-server-2019,sql-graph,sql-server-graph,graph-table,Sql Server,Sql Server 2019,Sql Graph,Sql Server Graph,Graph Table,我有一个包含2个节点表和1个边表的图表结构 症状表是一个节点表,症状是一个边缘表。此外,还有另一个名为Syndrome的节点表 我的目标是创建一个查询,在这里我可以遍历我的图,遍历特定的节点 我编写了下面的查询,以显示所有可能的路径,从“心血管”节点开始,但我需要过滤通过路径的结果,在下图中用红色下划线(心血管->心悸->持续时间->间隔->天数) 我曾考虑过向WHERE子句添加另一个过滤条件,但我不知道如何编写它,以便约束节点只遍历中“links”列中的值 请注意,我知道并且我可以将链接列中

我有一个包含2个节点表和1个边表的图表结构

症状表是一个节点表,症状是一个边缘表。此外,还有另一个名为Syndrome的节点表

我的目标是创建一个查询,在这里我可以遍历我的图,遍历特定的节点

我编写了下面的查询,以显示所有可能的路径,从“心血管”节点开始,但我需要过滤通过路径的结果,在下图中用红色下划线(心血管->心悸->持续时间->间隔->天数)

我曾考虑过向
WHERE
子句添加另一个过滤条件,但我不知道如何编写它,以便约束节点只遍历中“links”列中的值

请注意,我知道并且我可以将链接列中的值传递给它,以过滤行,并使我获得
最后匹配
列中的“天”值,但我的目的是通过节点(验证)的特定路径进行过滤,如下所示:

where match(
    shortest_path(s1(-(sc1)->s2)+)
    )
    and s1.symptom_name = 'Cardiovascular'
    and s2.symptom_name = ALL('Palpitations, 'Duration', 'Interval', 'Days')
但是,这会产生一个错误:

别名或标识符“s2.symptom\u name”不能在选择中使用 列表、排序依据、分组依据或具有上下文

那么,有没有办法限制路径搜索通过某些节点?

那么,有没有一种方法可以约束路径搜索通过特定的路径 节点

通过仅选择“for path”的特定值,可以过滤/限制要为路径考虑的节点,但这并不说明如何遍历路径

......
from symptom as s1,
syndrome_causes for path as sc1,
(select * from symptom where symptom_name in ('Palpitations', 'Duration', 'Interval', 'Days')) for path as s2
......

谢谢,这有点帮助!为了筛选最后一个匹配项和/或路径/[links],派生整个查询:
select*from(选择distinct……….和s1.symptom\u name='carbondial')作为drv,其中drv.last\u match='Days'和drv.links=concat('perpilations','->','Duration',….'Days')
......
from symptom as s1,
syndrome_causes for path as sc1,
(select * from symptom where symptom_name in ('Palpitations', 'Duration', 'Interval', 'Days')) for path as s2
......