我有一张表基本上描述了一条公交路线。该表包括特定路线的所有站点。
This SQLFiddle显示了一个示例。数据显示一个方向的流量,但路径也可以是另一个方向。
我需要获取此路线的子集(或所有路线),具体取决于起始站和终点站。例如,我可能会有这些:
/bin/bash
然而,如果方向来自例如H - > B,子集需要是G - >下进行。
序列列就是为了这个目的。
使用SQL只有一种干净简单的方法吗?
答案 0 :(得分:1)
假设我理解你的问题,这似乎很简单
要获取子集,只需使用between...and
列上的sequence
运算符:
SELECT stop_from, stop_to
FROM routes
WHERE sequence BETWEEN 2 AND 11
ORDER BY sequence
要获得相反方向的子集,只需按desc排序,然后选择stop_to
为stop_from
,stop_from
为stop_to
:
SELECT stop_to As stop_from, stop_from As stop_to
FROM routes
WHERE sequence BETWEEN 3 AND 7
ORDER BY sequence DESC