首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL ORDER BY路由信息

SQL ORDER BY路由信息
EN

Stack Overflow用户
提问于 2012-11-21 17:39:22
回答 2查看 223关注 0票数 16

Ik有一个以随机顺序显示路由信息的表,如下所示:

代码语言:javascript
复制
from    to      street
----------------------------------
92      91      Lange Poten
100     104     Bagijnestraat
85      79      Korte Poten
91      85      Plein
79      100     Bezuidenhoutseweg

我正在尝试找到一种使用路由信息对其进行排序的方法,其中当前行的 to 列与下一行的from列相匹配。在这个例子中,我想要的顺序是:

代码语言:javascript
复制
from    to      street
----------------------------------
92      91      Lange Poten
91      85      Plein
85      79      Korte Poten
79      100     Bezuidenhoutseweg
100     104     Bagijnestraat

列上执行简单的ORDER BY不起作用,因为数字顺序不正确。我正在尝试寻找一种使用SQL或Excel的方法。

SQL小提琴在这里:http://sqlfiddle.com/#!2/9ebbb

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-21 18:13:03

这在oracle中是有效的

代码语言:javascript
复制
select a.*
from route  a
start with a.rowid = (select min(rowid) from route )
connect by prior a.t = a.f; 
票数 8
EN

Stack Overflow用户

发布于 2012-11-21 18:27:00

SQL Server (2005+)将是

代码语言:javascript
复制
Declare @Routes Table([from] int, [to] int, [street] varchar(17))   
INSERT INTO @Routes VALUES
(92, 91, 'Lange Poten'),
(100, 104, 'Bagijnestraat'),
(85, 79, 'Korte Poten'),
(91, 85, 'Plein'),
(79, 100, 'Bezuidenhoutseweg')

;With  Cte AS
(
    SELECT  [from]
            ,[to]
            ,[street]
    FROM    @Routes
    WHERE   [from] = 92
    UNION ALL
    SELECT  r.[from]
            ,r.[to]
            ,r. [street]
FROM    @Routes AS r
JOIN    Cte c
ON      c.[to] = r.[from]
)

Select * From Cte

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13490256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档