9.15 在拆分字符串的同时解析

 

在拆分字符串时,将字串解析为合适类型的数值。
有课程表和选课表,查询有哪些课没有学生选修。其中选课表可以多选,用逗号分隔,部分数据如下:

Course:

ID NAME TEACHERID
1 Environmental protection and … 5
2 Mental health of College Students 1
3 Computer language Matlab 8
4 Electromechanical basic practice 7
5 Introduction to modern life science 3
6 Modern wireless communication system 14

SelectCourse:

ID STUDENTID COURSE
1 59 2,7
2 43 1,8
3 52 2,7,10
4 44 1,10
5 37 5,6
6 57 3

使用函数 s.split() 的 @p 选项,拆分后将成员解析成相应的数据类型。

脚本:

A
1 =connect(“db”)
2 =A1.query(“select * from Course”)
3 =A1.query@x(“select * from SelectCourse”)
4 =A3.union(COURSE.split@cp())
5 =A2.(ID)
6 =A2(A5.pos([A5,A4].diff()))

A1 连接数据库
A2 读取课程表
A3 读取学生选课表
A4 使用 split 函数的 @p 和 @c 选项,将选课表中的课程按逗号拆分后解析成整数,使用 union() 函数对课程序列求交列
A5 所有课程的序号
A6 使用 diff() 函数求课程表和选课表的课程序号的差列,即没有学生选择的课程,在 A5 中定位后,从 A2 中选出。

运行结果:

ID NAME TEACHERID
1 Fundamentals of economic management 21