国产探花免费观看_亚洲丰满少妇自慰呻吟_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.效果

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 静安区| 浙江省| 雅安市| 钟祥市| 永泰县| 裕民县| 四子王旗| 犍为县| 贡山| 庄河市| 三门县| 喀喇沁旗| 大宁县| 平遥县| 阿瓦提县| 板桥市| 青龙| 宕昌县| 钟祥市| 伊宁县| 米易县| 霍林郭勒市| 西乌珠穆沁旗| 客服| 土默特右旗| 虞城县| 毕节市| 和田市| 嘉义市| 和田市| 罗甸县| 乐业县| 长垣县| 平度市| 北流市| 金山区| 松溪县| 四川省| 昌都县| 新源县| 迭部县|