gpt4 book ai didi

sql - 我怎样才能在 SQL 中做到这一点?我需要找到一个小数据表的可能排列

转载 作者:行者123 更新时间:2023-12-03 03:09:47 24 4
gpt4 key购买 nike

我有这个小数据表。

 Dir   LinkL  LinkH
East 19 27
East 27 29
East 29 31
West 46 49
West 49 51
West 51 61

这些代表可能的行程。我该如何查询这个?例如,如果您从 19 站出发,则可以从 19->27、19->29 和 19->31。三种可能的“行程” 但是从 27 开始,您只有两种可能的“行程”,27->29 和 27->31,最后从 29 开始只给出一种可能的行程 29->31。那是向东行驶,同样的情况向西行驶,您可能有 3 次可能的“行程”,从 46 站出发,46->49,46->51,46->61,依此类推...制作 12 条行程记录6 个输入。我如何编写类似的查询?我从这样的事情开始

选择 t1.Dir、t1.LinkL
从 tblaa t1 内连接 tblaa t2
开启 t1.Dir = t2.Dir
AND t2.LinkL > t1.LinkL

,但是我的Sql技能有些有限。

期望的输出是这样的

East        19  27
East 19 29
East 19 31
East 27 29
East 27 31
East 29 31
West 46 49
West 46 51
West 46 61
West 49 51
West 49 61
West 51 61

进行 12 次可能的“旅行”有没有人可以指出我正确的方向?我不介意两个单独的查询并将结果合并在一起。如果方向使事情变得更加困难。我还试图避免可怕的光标。

感谢您的帮助。

干杯,
〜ck

最佳答案

这有效:

;WITH trip_cte AS
(
SELECT
T1.dir,
T1.linkl AS start,
T1.linkh AS finish
FROM
dbo.Trips T1
UNION ALL
SELECT
CTE.dir,
CTE.start,
T.linkh AS finish
FROM
trip_cte CTE
INNER JOIN dbo.Trips T ON
T.linkl = CTE.finish
)
SELECT
dir,
start,
finish
FROM
trip_cte

关于sql - 我怎样才能在 SQL 中做到这一点?我需要找到一个小数据表的可能排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3119514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com