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

MSSQL库data表存储了航班衔接关系,ID字段是航班组,即有衔接关系的一组航班;ROUTE字段是前后衔接关系,由前后两个航班组成,用短横连接;LNO字段是衔接顺序。
IDROUTELNO
1JFK-LAX1
1LAX-IAD2
1IAD-ORD3
5MIA-ATL1
5ATL-MIA2
2SEA-IAH1
2IAH-AUS2
2AUS-SEA3
现在要算出每组航班的完整的衔接序列,并按航班组排序,仍然用短横连接。
IDROUTE
1JFK-LAX-IAD-ORD
2SEA-IAH-AUS-SEA
5MIA-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字段按-拆分,再一起合并,对前后重复的航班进行去除重复(不排序去重),最后用-连接。

SPL开源地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值