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