【蚂蚁】查询参加 course3 培训的员工
WHERE 条件JOIN 连接字符串函数ORDER BY数据清洗面试真题
题目描述
来源:蚂蚁 SQL 面试真题
某公司需要查询参加了指定课程的员工信息。员工可以自愿参加 0 至 3 门课程,参加的课程以英文逗号分隔并保存在 cultivate_tb.course 字段中,逗号后可能存在空格。
数据表
staff_tb 员工信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| staff_id | BIGINT | 员工 ID |
| staff_name | VARCHAR | 员工姓名 |
| staff_gender | VARCHAR | 员工性别 |
| post | VARCHAR | 员工岗位类别 |
| department | VARCHAR | 员工所在部门 |
cultivate_tb 员工培训信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| info_id | BIGINT | 培训信息 ID |
| staff_id | BIGINT | 员工 ID |
| course | VARCHAR | 培训课程,多个课程以英文逗号分隔;未参加时为 NULL |
题目要求
请查询培训课程中包含 course3 的员工信息。
- 只要员工参加的课程列表中包含完整课程项 course3,就计入结果。
- 输出员工 ID 和员工姓名。
- 按员工 ID 升序排列。
期望输出列
| 列名 | 说明 |
|---|---|
| staff_id | 员工 ID |
| staff_name | 员工姓名 |
数据样例
| staff_idPKBIGINT | staff_nameVARCHAR(50) | staff_genderVARCHAR(10) | postVARCHAR(50) | departmentVARCHAR(50) |
|---|---|---|---|---|
| 1 | Angus | male | Financial | dep1 |
| 2 | Cathy | female | Director | dep1 |
| 3 | Aldis | female | Director | dep2 |
| 4 | Lawson | male | Engineer | dep1 |
| 5 | Carl | male | Engineer | dep2 |
| 6 | Ben | male | Engineer | dep1 |
| 7 | Rose | female | Financial | dep2 |
输入数据显示 7 / 7 行
SQL 编辑器正在保存草稿...
Ctrl + Enter 运行
正在加载 SQL 编辑器...
运行你的 SQL 查询后,结果将显示在这里