国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

計算從A地出發到各個地方的路徑及距離

2024-07-21 02:46:09
字體:
來源:轉載
供稿:網友
計算從A地出發到各個地方的路徑及距離

數據庫環境:SQL SERVER 2005

如題,現有bus表數據如下,dstart是起點,dend是終點,distance是兩地的距離。

求從A地出發到各個地方的距離。

有經驗的人一看,就知道題目關于樹形查詢的。SQL%20SERVER%202005數據庫沒有提供樹形查詢相關的函數,

因此,可以通過CTE遞歸實現。

題目比較簡單,就不寫什么分析思路了,直接看代碼實現。

  1.建表,導入測試數據

CREATE TABLE bus    (      dstart VARCHAR(4) ,      dend VARCHAR(4) ,      distance INT    );INSERT  INTO busVALUES  ( 'A', 'B', 120 );INSERT  INTO busVALUES  ( 'B', 'C', 200 );INSERT  INTO busVALUES  ( 'A', 'D', 150 );INSERT  INTO busVALUES  ( 'D', 'M', 300 );INSERT  INTO busVALUES  ( 'C', 'E', 180 );INSERT  INTO busVALUES  ( 'F', 'M', 260 );
View Code

  2.實現

WITH    x0 ( dstart, dend, way, distance )          AS ( SELECT   dstart ,                        dend ,                        CONVERT(VARCHAR (20), dstart + '-' + dend) AS way ,                        distance               FROM     bus               WHERE    dstart = 'A'               UNION ALL               SELECT   bus .dstart ,                        bus.dend ,                        CONVERT(VARCHAR (20), x0. way + '-' + bus .dend) AS way ,--路徑                        bus.distance + x0.distance AS distance --距離               FROM     bus ,                        x0               WHERE    bus .dstart = x0 .dend             )    SELECT  way ,            distance    FROM    x0
View Code

  3.效果

看到這題目,剛好做下練手,并分享給大家。大家若有更好的實現方式,歡迎分享,一起學習。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松原市| 五原县| 湖南省| 奉化市| 普兰县| 仲巴县| 屏山县| 通河县| 汉寿县| 九龙城区| 古浪县| 松原市| 贵南县| 澳门| 尚志市| 肃宁县| 西吉县| 绥滨县| 上林县| 改则县| 余干县| 天祝| 阳山县| 文安县| 郑州市| 金堂县| 盐城市| 云和县| 武穴市| 沙田区| 丰宁| 新疆| 永德县| 江永县| 莒南县| 迁安市| 达拉特旗| 安岳县| 青龙| 行唐县| 台北市|