9.20 使用代码解析表中字段
使用代码解析序表中的字符型字段。
求 80 后的平均工资,年龄需要从证件号码中提取。员工表部分数据如下:
ID | Name | Identification | Salary |
---|---|---|---|
1 | Rebecca | Driving license:495319197411204628 | 7000 |
2 | Ashley | ID number:103263198007194980 | 11000 |
3 | Rachel | ID number:721125197012173641 | 9000 |
4 | Emily | ID number:619124198503071617 | 7000 |
5 | Ashley | ID number:248238197505138795 | 16000 |
… | … | … | … |
单独的函数无法直接求解时,可以使用多个函数逐步解析处理字符串。
脚本:
A | |
---|---|
1 | =connect(“db”).query@x(“select * from Employee”) |
2 | =A1.run(Identification=Identification.regex(“\D*(\d+)”)(1)) |
3 | =A2.run(Identification=mid(Identification,7,4)) |
4 | =A3.run(Identification=number(Identification)) |
5 | =A4.select(Identification>=1980 && Identification <=1989) |
6 | =A5.avg(Salary) |
A1 连接数据源,读取员工表
A2 使用 S.regex() 函数读取身份证的数字部分
A3 使用 mid() 函数,读取身份证明的 7 到 10 位,即出生年份
A4 使用 number() 函数,将年份串解析为数字
A5 选出出生日期在 80 年代的员工
A6 计算平均工资
运行结果:
ID |
---|
7256.16 |