0
嗨,我有以下节点和链接表。我需要使用Node表构建线坐标数组。但是,如果节点类型是顶点,我需要将坐标添加到数组中,并获取下一个坐标(使用FromID-> ToID),直到找到非顶点,这是该行的结束点。 我试图使用以前的帖子的递归查询解决方案,但是这不起作用。递归查询或查询XML(通过加入2个表)输出实现此目的的最佳方式?我使用SQL Server 2008的SQL Server递归查询
节点表:
NODEID TYPE COORDS
BEND1 VALVE (439754,350240) BEND3 VALVE (439720,350268) COP1 HYDRANT (439879,350292) EFJ1 FITTING (439740,350248) NFH1 VALVE (439798,350262) NFH2 VALVE (439802,350313) NWO3 VALVE (439752,350244) NSV1 VALVE (439877,350292) NSV2 VALVE (439753,350245) NSV3 VALVE (439752,350244) TP1 HYDRANT (439752,350244) TP2 HYDRANT (439864,350360) VERTEX3 VERTEX (439805,350314) VERTEX1 VERTEX (439730,350286) VERTEX2 VERTEX (439769,350301) PR4 VALVE (439824,350332) VERTEX6 VERTEX (439853,350357)
链接表
FROMID TOID STATUS BEND1 NWO3 OPER BEND3 VERTEX1 OPER COP1 NSV1 OPER EFJ1 BEND3 OPER NFH1 NSV1 OPER NFH2 VERTEX3 OPER TP1 NSV3 OPER VERTEX1 VERTEX2 OPER VERTEX2 NFH2 OPER VERTEX3 PR4 OPER
预期输出
RECNUM FROMID TOID LINE_COORDS 1 BEND1 NWO3 (439754,350240),(439752,350244) 2 BEND3 NFH2 (439720,350268),(439730,350286),(439769,350301),(439802,350313) 3 COP1 NSV1 (439879,350292),(439877,350292) 4 EFJ1 BEND3 (439740,350248),(439720,350268) 5 NFH1 NSV1 (439798,350262),(439877,350292) 6 NFH2 PR4 (439802,350313),(439805,350314),(439824,350332) 7 TP1 NSV3 (439752,350244),(439752,350244)
谢谢。但这是我得到的输出:
– user3050151不幸的是,查询不起作用。我没有得到顶点的坐标 – user3050151
你是对的,我纠正并测试了这个新的查询。 – Polux2