SQL,连结多行的字串并去除重复

MSSQL库data表存储了航班衔接关系,ID字段是航班组,即有衔接关系的一组航班;ROUTE字段是前后衔接关系,由前后两个航班组成,用短横连接;LNO字段是衔接顺序。

ID

ROUTE

LNO

1

JFK-LAX

1

1

LAX-IAD

2

1

IAD-ORD

3

5

MIA-ATL

1

5

ATL-MIA

2

2

SEA-IAH

1

2

IAH-AUS

2

2

AUS-SEA

3

现在要算出每组航班的完整的衔接序列,并按航班组排序,仍然用短横连接。

ID

ROUTE

1

JFK-LAX-IAD-ORD

2

SEA-IAH-AUS-SEA

5

MIA-ATL-MIA

编写SPL代码:


A

1

=sqlServer1.query("select * from data order by ID,LNO")

2

=A1.group(ID;~.(ROUTE.split("-")).conj().id@o().concat("-"):ROUTE)

A1:执行简单SQL,注意排序

A2:按ID分组,处理每组数据~。先将组内的ROUTE字段按-拆分,再一起合并,对前后重复的航班进行去除重复(不排序去重),最后用-连接。

来源:https://stackoverflow.com/questions/78429500/remove-repetitive-characters-across-each-other-that-linked-with-dash