SQL 拆分字符串

本文讨论了在SQL中拆分字符串的挑战,尤其是处理字符串并按需进行分组汇总。推荐使用SPL脚本来实现这个功能,因为其代码直观且易于理解。SPL提供了JDBC接口,使得在Java中调用类似数据库操作的方式变得简单。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【问题】

CREATE TABLE dbo.Employees
(
Class VarChar(40) NOT NULL,
Teacher VarChar(200) NOT NULL,
);

Insert Into dbo.Employees(Class, Teacher) Values(‘001’,‘张三, 李四, 王二’);
Insert Into dbo.Employees(Class, Teacher) Values(‘002’,‘李四’);
Insert Into dbo.Employees(Class, Teacher) Values(‘003’,‘李四, 王二’);
Insert Into dbo.Employees(Class, Teacher) Values(‘004’,‘张三, 王二’);
Insert Into dbo.Employees(Class, Teacher) Values(‘005’,‘张三’);
Insert Into dbo.Employees(Class, Teacher) Values(‘006’,‘张三, 李四, 王二’);
Insert Into dbo.Employees(Class, Teacher) Values(‘007’,‘李四, 王二’);
Insert Into dbo.Employees(Class, Teacher) Values(‘008’,‘张三, 李四, 王二’);
Insert Into dbo.Employees(Class, Teacher) Values(‘009’,‘张三, 王二’);

期望获得结果:
Teacher  Count  
张三    6
李四    6
王二    7

【回答】
SQL 拆串的处理实现很麻烦,很难按自然思维(把 Teacher 拆分成多条,再合并后分组汇总)写出代码。因此这种情况适合用 SPL 来做,脚本直观易懂:

A
1$select * from Employees
2=A1.conj(Teacher.array()).groups(~:Teacher;count(~):Count)

A2 将 Teacher 拆分成序列,继而合并后再分组汇总个数


集算器提供 JDBC 接口,可以像数据库一样使用,Java 如何调用 SPL 脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值