星空网 > 软件开发 > 数据库

计算从A地出发到各个地方的路径及距离

数据库环境:SQL SERVER 2005

如题,现有bus表数据如下,dstart是起点,dend是终点,distance是两地的距离。

计算从A地出发到各个地方的路径及距离

求从A地出发到各个地方的距离。

有经验的人一看,就知道题目关于树形查询的。SQL SERVER 2005数据库没有提供树形查询相关的函数,

因此,可以通过CTE递归实现。

题目比较简单,就不写什么分析思路了,直接看代码实现。

  1.建表,导入测试数据

计算从A地出发到各个地方的路径及距离计算从A地出发到各个地方的路径及距离
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.实现

计算从A地出发到各个地方的路径及距离计算从A地出发到各个地方的路径及距离
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.效果

计算从A地出发到各个地方的路径及距离

看到这题目,刚好做下练手,并分享给大家。大家若有更好的实现方式,欢迎分享,一起学习。




原标题:计算从A地出发到各个地方的路径及距离

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

德国VAT税务证书申请流程及时限:https://www.kjdsnews.com/a/1387980.html
德国VAT税务证书申请流程及时间要求:https://www.kjdsnews.com/a/1387981.html
德国VAT税号查询的最佳网站推荐:https://www.kjdsnews.com/a/1387982.html
德国VAT税号查询最全面的网站汇总:https://www.kjdsnews.com/a/1387983.html
德国VAT税号查询最佳网站推荐:https://www.kjdsnews.com/a/1387984.html
干掉Anker,月售百万美金!3C卖家有多野?:https://www.kjdsnews.com/a/1387985.html
斥资210万美元,TikTok游说美国参议院阻止法案:https://www.goluckyvip.com/news/188213.html
大家推荐一下厦门三整天一个半天的旅游攻略:https://www.vstour.cn/a/365181.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流